iOS开发

ios 中断言的使用

2015-08-27  本文已影响795人  _lijinglong

NSAssert()只是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug,满足条件返回真值,程序继续运行,如果返回假值,则抛出异常,并切可以自定义异常描述。NSAssert()是这样定义的:

#define NSAssert(condition, desc)

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

生成一个LotteryEntry对象时,传入的NSDate不能为nil,加入NSAssert()判断。对象初始化源码如下:

- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

if (self) {

NSAssert(nibNameOrNil != nil , @"nibNameOrNil can't nil" );

[self customTabbarItem:kTabbarItemModeMain];

self.title = mainItem_main;

}

return self;

}

如果初始化的时候,

MainListViewController *mainVC = [[MainListViewController alloc] initWithNibName:nil bundle:nil];

结果是这样的:

结果图
上一篇下一篇

猜你喜欢

热点阅读