NSAssert浅析

NSAssert浅析

作用

当给定的条件为false时,直接生成一个断言。

声明

1
#define NSAssert(condition, desc, ...)
参数 描述
condition 表达式,值为YES或者NO
desc NSString对象,一般会写一段描述错误信息的字符串,可以包含参数的占位符
用于填充desc字符串中的占位符的参数

用法

当程序处于Debug状态下,如果condition值为NO,那么程序会抛出一个异常,控制台会打印出desc。当程序处于Release状态下,断言不会执行。
所以我们一般可以利用断言来调试程序,举个例子:

1
NSAssert(self.dataSource != nil, @"必须设置dataSource");

我们在程序中添加了一条断言,如上,这句话的意思是必须要设置数据源,一旦self.dataSource没有设置,那么程序Debug时就会抛出异常,并且打印“必须设置dataSource”这句话,这样我们就能避免忘记设置数据源。