经营你的iOS应用日志(一):开始编写日志组件
如果你去4S店修车,给小工说你的车哪天怎么样怎么样了,小工有可能会立即搬出一台电脑,插上行车电脑把日志打出来,然后告诉你你的车发生过什么故障。汽车尚且如此,何况移动互联网应用呢。 本文第一篇: 经营你的iOS应用日志(一):开始编写日志组件 言归正传。开发iOS应用,解决Crash问题始终是一个难题。Crash分为两种,一种是由EXC_BAD_ACCESS引起的,原因是访问了不属于本进程的内存地址,有可能是访问已被释放的内存;另一种是未被捕获的Objective-C异常(NSException),导致程序向自身发送了SIGABRT信号而崩溃。其实对于未捕获的Objective-C异常,我们是有办法将它记录下来的,如果日志记录得当,能够解决绝大部分崩溃的问题。这里对于UI线程与后台线程分别说明。 先看UI线程。iOS SDK提供了NSSetUncaughtExceptionHandler函数,用法如: NSSetUncaughtExceptionHandler( handleRootException ); 这样在UI线程发生未捕获异常后,进程崩溃之前,handleRootException会被执行。这个函数实现如下 static void handleRootException( NSException* exception ){ NSString* name = [