NSAssert()和NSParameterAssert()的使用

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

#define NSAssert(condition, desc);可以点击进去看下如何定义的
用法:
NSString *name;
NSAssert([name isEqualToString:@"Dely"],@"名字必须为Dely哦");

异常信息:定位到问题类的某一行

2016-11-11 18:18:34.598 RuntimeDemo[1415:64564]  Assertion failure in -[ViewController viewDidLoad], /Users/admin/Desktop/Projects/RuntimeDemo/RuntimeDemo/ViewController.m:23
2016-11-11 18:18:34.601 RuntimeDemo[1415:64564]  Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '名字必须为Dely哦'

NSParameterAssert和NSCparameterAssert 两者的区别也是前者适用于Objective-C的方法,后者适用于C的函数。

Xcode 已经默认将release环境下的断言取消了, 免除了忘记关闭断言造成的程序不稳定. 所以不用担心 在开发时候大胆使用。

NSAssert()和NSParameterAssert()的使用_第1张图片

断言开启.png

总结:NSAssert/NSCAssert和 NSParameterAssert/NSCparameterAssert 的区别是前者是针对条件断言, 后者只是针对参数是否存在的断言。

来源地址:http://www.jianshu.com/p/edf9224c312e

你可能感兴趣的:(NSAssert()和NSParameterAssert()的使用)