断言

作者: 初光夫 | 来源:发表于2017-08-20 22:06 被阅读12次

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

    相关文章

      网友评论

          本文标题:断言

          本文链接:https://www.haomeiwen.com/subject/zwfdrxtx.html