断言NSAssert()-调试程序中的Bug

来源:互联网 发布:天津软件工作者薪资 编辑:程序博客网 时间:2024/04/30 16:02

NSAssert()只是一个宏,用于开发阶段调试程序中的Bug.

#define NSAssert(condition, desc, ...) /*condition是条件表达式,值为YES或NO;desc为异常描述,通常为NSString。当conditon为YES时程序继续运行,为NO时,则抛出带有desc描述的异常信息。NSAssert()可以出现在程序的任何一个位置。*/

具体事例如下:

- (void)viewDidLoad {    [super viewDidLoad];    [self assert:@"a"];}- (void)assert:(NSString *)str {        NSAssert(str, @"str is nil");    if (str) {        NSLog(@"%@",str);    }else{        NSLog(@"error");    }}

[self assert:@"a"]; 调用

如果调用如下:

- (void)viewDidLoad {    [super viewDidLoad];    [self assert:nil];}

程序会直接报错,

tips: 我更喜欢 断点po 或者 直接 NSLog,  看到抛出异常很难受
0 0