Try…Catch…
为什么OC中很少用Try Catch,根据知乎热心网友回答
因为try catch无法捕获UncaughtException
而oc中大部分crash如:内存溢出、野指针等都是无法捕获的
而能捕获的只是像数组越界之类(这真心需要catch么?),所以try catch对于oc来说,比较鸡肋。
Assert
OC中的NSAssert()是一个宏,用于开发阶段调试程序中的Bug,如果发布不去掉的话,有可能会影响到程序的性能。
#define NSAssert(condition, desc)
condition是条件表达式,值为YES或NO;desc为异常描述,通常为NSString。
当conditon为YES时程序继续运行,为NO时,则抛出带有desc描述的异常信息。NSAssert()可以出现在程序的任何一个位置
如何一键除去NSAssert
在Build Settings菜单,找到Preprocessor Macros项,Preprocessor Macros项下面有一个选择,用于程序生成配置:Debug版和Release版。选择 Release项,设置NS_BLOCK_ASSERTIONS,不进行断言检查。
然后只需要在Run的时候选择为Release,就不会进行断言.对于Archive 而言,默认的生成配置就是Release。
[1]https://www.zhihu.com/question/21248079/answer/27037365
[2]http://blog.csdn.net/univcore/article/details/16859263