本文将简单的介绍ios中的几种断言方式
1. assert
assert只是一个宏,用于开发阶段调试程序中的bug,通过为assert()来传递表达式来判断是否属于bug,满足条件返回真值程序继续运行,如果返回假则抛出异常,但是assert仅仅只是简单的抛出异常终止程序。
2. NSAssert
NSAssert也仅仅是一个宏,条件判断与assert相同,不同的是可以自定义异常的描述,在条件返回假时会提示错误信息并打印出来。
例如:
- (void)testAssert {
int a = 0;
NSAssert(a, @"a的值不能为0");
NSLog(@"程序正常运行了");
}
当程序执行时运行到断言处会crash并在控制台会提示上述自定义的报错信息。
3. NSParameterAssert/NSCparameterAssert
NSParameterAssert是适用于Objective-C的方法,NSCparameterAssert是适用于C的函数
4. NSAssert与NSParameterAssert的区别
先来看看NSParameterAssert的定义:
#define NSParameterAssert(condition) NSAssert((condition), @"Invalid parameter not satisfying: %@", @#condition)
从定义中不难看到NSParameterAssert是对NSAssert的重新定义在某种意义上来说他两是等价的,具体的区别未完待续。。。