那片树海

用心做一件工艺品


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

文档网站生成工具docsify

发表于 2017-06-20 | 更新于: 2018-12-29

20170620-1

今天给大家推荐一个非常好用的工具docsify,对,没错,就是上面这个萌萌哒的类似果冻的东西。

docsify

docsify是一个非常好用的文档网站生成工具。它能快速的将你存储在Git仓库中的markdown文档生成一个文档网站,而且界面非常美观。

下面是docsify文档的介绍

docsify 是一个动态生成文档网站的工具。不同于 GitBook、Hexo 的地方是它不会生成将 .md 转成 .html 文件,所有转换工作都是在运行时进行。

这将非常实用,如果只是需要快速的搭建一个小型的文档网站,或者不想因为生成的一堆 .html 文件“污染” commit 记录,只需要创建一个 index.html 就可以开始写文档而且直接部署在 GitHub Pages。

使用

直接点击这里查看其官方文档即可,里面非常详细的介绍了如何使用。另外docsify文档也是一个实例demo。

iOS下的cookies使用

发表于 2017-05-27 | 更新于: 2018-04-04

今天无意间翻到了以前有关cookies的代码,就顺便整理了一下,和大家分享下。

Cookies简介

这里有比较详细的介绍,本文就不再赘述了。click me

在iOS当中需要注意以下几点:

  1. 不管是NSURLConnection还是UIWebView都会保留并传递服务端的cookie,就是说基本所有的网络请求都会使用cookie
  2. 多个应用之间默认不共享cookie
  3. 临时cookie在应用重启之后就会消失
  4. 持久cookie在应用或系统重启之后不会消失
  5. cookie不能跨域,像.baidu.com和image.baidu.com这种也是跨域
  6. WKWebView因为没有缓存,不能使用cookie,想要使用,需做特殊处理。

注:cookie不能跨域是通用的,在所有情况下都是这样,并非在iOS系统上如此。.baidu.com和image.baidu.com可以使用彼此的cookie是因为服务端做了特殊的处理。

阅读全文 »

CocoaPods invalid byte sequence in UTF-8

发表于 2017-05-26 | 更新于: 2018-12-29

CocoaPods作为iOS开发常用的包管理工具一直深受大家的喜爱,但是它出现问题的时候也让我们非常纠结。最近我就遇到这么一个让人纠结的错误ArgumentError - invalid byte sequence in UTF-8,下面就来说下如何解决它。

我的问题是当你pod search <content>时就会报这个错误,详细的错误提示如下:

/Users/yzq/.rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.2.1/lib/cocoapods/user_interface/error_report.rb:135:in `error_from_podfile': invalid byte sequence in UTF-8 (ArgumentError)

期间我尝试了重新下载repo、重新安装CocoaPods、甚至重新安装Ruby环境都没有解决,手动摊手。

当你Google这个错误或者在CocoaPods的issues里面搜索之后,你大致会发现以下几种解决方案。

字符集错误

这种方法认为你本地字符集没有配置好,需要配置成标准的en_US.UTF-8,执行以下命令即可,或者将以下命令添加的相应的shell配置文件当中,例如:~/.bashrc或者~/.zshrc。

//使用命令locale可以查看本地字符集

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

然而这种方法并没有解决我的问题,我使用locale命令查看同事的电脑的字符集,发现和我一样是zh_CN.UTF-8,然而他的CocoaPods却没有问题,所以断定不是字符集的问题。

阅读全文 »

简单说下tintColor

发表于 2017-05-23 | 更新于: 2018-12-29

最近遇到了一个问题,弹窗消失之后,APP导航栏的颜色变暗,弹框样式如下:

20170523-2

起初以为是修改了导航栏的颜色,后来发现是导航栏着色tintColor渲染模式修改造成的。

阅读全文 »

Hexo博客绑定域名

发表于 2017-04-11 | 更新于: 2019-02-13

我们通过CNAME的方式来绑定我们购买的域名

操作步骤

1.在hexo目录下的source文件夹中创建一个文件CNAME

CNAME文件不要有后缀,建议使用touch CNAME命令创建

2.将你的域名写到CNAME文件当中

尽量不要有空格换行等冗余内容

3.重新生成部署你的博客

sudo hexo clean && hexo generate && hexo deploy

如上操作完成之后,你访问对应的github.io或者coding.me的地址时就会重定向到你购买的域名

阅读全文 »

从Signal 10 Bus Error聊聊assign和weak

发表于 2017-04-07 | 更新于: 2018-04-04

曾经我以为iOS最牛叉的错误是EXC_BAD_ACCESS,直到我遇到了Signal 10 was raised. SIGBUS ……

这个错误出现的几率其实蛮低的,但是会造成闪退,所以还是不容忽视的。下面我们就来一起看一下

Bus error

Bus error即总线错误,以下是中文维基百科的定义

存储器区块错误(英语:Segmentation fault,经常被缩写为segfault),又译为记忆段错误,也称为总线错误(bus error),或总线错误、访问权限冲突(access violation),是一种程序错误。

它会出现在当程序企图访问CPU无法定址的存储器区块时。当错误发生时,硬件会通知操作系统,产生了存储器访问权限冲突的状况。

英文维基百科的释义相对详细一些,也介绍了造成这种错误的原因

On POSIX-compliant platforms, bus errors usually result in the SIGBUS signal being sent to the process that caused the error. SIGBUS can also be caused by any general device fault that the computer detects, though a bus error rarely means that the computer hardware is physically broken—it is normally caused by a bug in a program’s source code.Bus errors may also be raised for certain other paging errors; see below.

There are at least three main causes of bus errors:

  • Non-existent address

  • Unaligned access

  • Paging errors

阅读全文 »

终端翻墙

发表于 2017-03-29 | 更新于: 2018-04-04

开发过程中有时候需要更新repo仓库和代码,但是GitHub上的仓库和代码的下载速度感人。

翻墙倒是可以解决这个问题,但是终端默认不走翻墙代理,这个时候就需要我们做一些配置了。

我们可以终端当中输入以下命令使终端的请求走相应的代理

//设置http和https请求代理
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118

//sock5协议请使用
export http_proxy=socks5://127.0.0.1:1080
export https_proxy=socks5://127.0.0.1:1080

//移除配置
unset http_proxy
unset https_proxy

我们拉取的时候有的时候可能会用到ssh,我们可以这样配置

//设置所有协议代理
export ALL_PROXY=socks5://127.0.0.1:1080

//移除配置
unset ALL_PROXY

当前这些配置只对当前终端有效

阅读全文 »

使用Shell脚本批量压缩图片

发表于 2017-02-08 | 更新于: 2018-04-04

在开发过程中我们为了减小安装包的体积,我们一般会把工程当中的图片资源文件进行压缩。

在添加图片的时候进行压缩是一个好习惯,但是对于工程当中的大量图片进行压缩替换是一个不小的工作量,而且还有可能不小心弄错,像这种大批量的重复性工作就需要写脚本来帮助我们完成了。

TinyPng&Shell

我们先来介绍我们今天的主角TinyPng,我相信许多开发人员都知道这个网站,TinyPng凭借着优秀的压缩效率和压缩质量备受好评。同时它也提供了相应的API供我们使用,这也是为什么要使用它的原因。

不过TinyPng也有一个限制,单个账号每月最多压缩500张次图片,想要提高相应压缩数量需要付费,这也对脚本的批量压缩造成了一些限制,后面会做相应介绍。

shell脚本就不过多的进行介绍了,网上的教程有很多,本文只会针对比较特殊的地方进行介绍。

实现思路

基本思路是从给定的文件夹下进行遍历查找,如果是图片,进行压缩,将压缩之后的图片下载进行替换,如果是文件夹的话则进入该文件夹下进行更深一层的遍历查找压缩。具体的可以查看脚本,代码如下:

阅读全文 »

JSPatch的一些坑

发表于 2017-02-08 | 更新于: 2018-04-04

最近使用JSPatch遇到了一些坑,发出来大家引以为鉴少走弯路吧,后续遇到问题的话会持续更新的。

2017.02.08更新

1.一些无法直接调用的常量应该怎么写,特别是系统定义的?

使用NSLog将对应常量值输出,直接使用输出的常量值替代

2.在JS当中发现不能调用方法,导致JS文件执行中断,使用console.log输出,发现为[NSObject object]

这种情况说明当前对象没有序列化,需转换成JS对象使用,调用toJS()即可

var temp = registrationID.toJS();

更多问题详见JSPatch官方文档,JSPatch 基础用法,JSPatch 常见问题

移除SourceTree无用远程分支

发表于 2017-02-06 | 更新于: 2021-08-05

在开发过程中我们很多时候都需要将当前分支推送到远程仓库,该分支完成其使命之后再将其删除。

使用SourceTree的同学可能会发现SourceTree追踪的远端分支越来越多,许多已经删除的分支也还在,即使从origin拉取也不行。

20170206-1

虽然这些不影响正常的使用,但想快速的找到一个分支还是有点麻烦的,于是我们决定清除它们。

解决方法1

  1. 进入对应目录下,使用git remote show origin命令查看本地仓库追踪远程仓库的状态
    20170206-2
  2. 使用git remote prune origin清除所有失效的远程分支或根据提示删除特定失效分支
  3. 重启SourceTree即可。

解决方法2

点击SourceTree操作界面上的“抓取”按钮,并在弹出的弹框上勾选“删掉在所有远端都已经不存在的跟踪(tracking)分支”,点击“确定”即可

1…3456
树海

树海

59 日志
1 分类
21 标签
RSS
GitHub Weibo
© 2023 树海
由 Hexo 强力驱动
|
主题 — NexT.Muse