断言

本文将简单的介绍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的重新定义在某种意义上来说他两是等价的,具体的区别未完待续。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容