Live Reload 工具 modd

最近开始用 go 写后端程序,每次 go run 感觉累得要死,非常需要一个 live reload 的工具。一些框架会自带自动重启功能,比如 Buffalo,不巧的是我们没有用框架,所以就需要找一些专门的 live reload 的工具了。

More …

__attribute__((objc_designated_initializer))

指定初始化器(designated initializer)是 Objective-C 中的一个重要的概念,但是很可惜的是,很多开发者(不知道为什么)并没能正确遵守关于指定初始化器的一些惯例。 之前,我们只能通过 code review 之类的方法来找出、修正这些问题;现在,clang 为我们提供了编译器级别的支持,能够找出不遵守管理的地方并给出警告,我们需要做的是标记出哪个初始化器是指定初始化器,例如:

More …

iOS app 中拨电话之后返回自己的 app

iOS app 里面打电话应该算是个比较常见的需求了,一般常用的方法是利用 UIApplication 里的 -openURL: 方法,但是这样打完电话之后就会停留在 Phone.app 里面了。就像这样:

NSURL *phoneCallURL = [NSURL URLWithString:[NSString stringWithFormat:@"tel:112"]];
[[UIApplication sharedApplication] openURL:phoneCallURL];

其实这种行为也是能预料到的,tel: 肯定是 Phone.app 注册的嘛。

不过利用 UIWebView 就能在拨打电话之后返回自己的应用。

_phoneCallWebView = [[UIWebView alloc] init];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"tel:112"]];
[_phoneCallWebView loadRequest:request];

用这个方法不需要自己添加确认的 action sheet 或者 alert view 了,会自动弹出来一个 alert view。另外可以用 UIWebView 的 delegate 方法 -webView:didFailLoadWithError: 来检测不能打电话的设备,在不能打电话的设备上打开 tel: URL 的时候这个方法会被调用。

Lion 对加密卷的支持

今天想给硬盘数据做备份,毕竟硬盘已经用了两年了,不用查 SMART 信息也知道他已经老了,虽然诸如代码之类的都有很多备份,但是还是有些文档、照片需要备份。

More …

C Traps & Tips I -- Duff's Device

最近又对 C 的陷阱和奇怪的用法之类的感兴趣了,于是又想写点东西,完全是主观感觉奇怪的或者是感觉是陷阱就写出来了,外加无责任分析,错了还请大家斧正……

More …