月度归档:2014年12月

代码片段

([[[UIDevice currentDevice] systemVersion] compare:@"7.0" options:NSNumericSearch] != NSOrderedAscending)

  • (void)doSomethingWithRequiredString:(NSString *)requiredString bar:(NSString *)optionalString __attribute((nonnull(1)));

在添加这个标记之后,当你尝试传入一个 nil 参数时,会出现一个编译器警告 。这挺好,因为你再也不用考虑这个边界用例:你可以利用编译器提供的功能替你做这样的检查。

http://www.cocoachina.com/ios/20141216/10649.html

dscacheutil -flushcache 清楚DNS缓存

Shadowsocks挂掉后解决办法

最近两天shadowsocks打开后,连接任何要翻墙的网站都会出现403 Error: connect econnrefused错误。

晚上想了下,估计端口问题,试试换个端口,重启服务就ok了,期间还发生一个插曲,我的supervisor没法重启,看错误是我在conf.d下面加了一个ghost.conf的配置文件,但我ghost是直接以服务的方式运行,所以配置文件一直没用,也一直没注意这问题。删除/etc/supervisor/conf.d/ghost.conf,确认conf.d下只有shadowsocks.conf文件,重启ok。

具体命令:
vi /etc/shadowsocks.json 修改server_port,改为大于10000的,避免被占用。
supervisorctl restart shadowsocks

再打开mac下的shadowsocks.app,正常使用了。