美文网首页
iOS 断言

iOS 断言

作者: winsonGali | 来源:发表于2019-04-25 10:35 被阅读0次
定义:

断言(assertion)是指在开发期间使用的、让程序在运行时进行自检的代码(通常是一个子程序或宏)
断言为真,则表明程序运行正常
断言为假,则意味着它已经在代码中发现了意料之外的错误
断言对于大型的复杂程序可靠性要求极高的程序来说尤其有用

作用:
  • 错误处理代码来处理预期会发生的状况,用断言来处理绝不应该发生的状况。
  • 避免需要执行的代码放到断言中
  • 用断言来注解验证前条件和后条件
  • 对于高健壮性的代码,应该先使用断言再处理错误
  • 可以帮助开发者尽快定位Bug
场景:

对来源于内部系统的可靠的数据使用断言,而不要外部不可靠的数据使用断言
对于外部不可靠数据,应该使用错误处理代码
断言可以看成可执行的注释
Debug使用断言检查,在Release禁用断言检查

使用:

Summary
Generates an assertion if a given condition is false.
Declaration
#define NSAssert(condition, desc, ...)

- (void)printMyName:(NSString *)myName {
    NSAssert(myName != nil, @"名字不能为空!");
    NSLog(@"My name is %@.",myName);
}
//如果传入的 myName 为空,则会抛出以下异常:
NSAssert[1268:a0b] *** Assertion failure in -[ViewController printMyName:]  NSAssert/NSAssert/ViewController.m:38
2019-04-21 13:56:01.927 NSAssert[1268:a0b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '名字不能为空!'
在 Release 中禁用断言:

Project -> Build Settings -> Enable Foundation Assertions -> Release = No
Project -> Build Settings -> Preprocessor Macros -> Release = NS_BLOCK_ASSERTIONS

相关文章

  • CocosCreator3.x开发笔记8: Invalid re

    在iOS下运行报错,是因为正则不支持 因为ios不支持零宽断言 什么是零宽断言? 粗略总结:零宽断言是正则表达式中...

  • iOS断言

    NSAssert()是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属...

  • iOS 断言

    NSCParameterAssert 该宏评估这个参数,如果为 false ,它就打印一个错误日志信息,该信息包含...

  • iOS 断言

    NSAssert定义:#define NSAssert(condition, desc, ...) //第一个参...

  • iOS 断言

    定义: 断言(assertion)是指在开发期间使用的、让程序在运行时进行自检的代码(通常是一个子程序或宏)断言为...

  • 自动化小课堂

    1.创建测试数据后及时删除 2.断言的添加,选择合适的断言 3.断言可以区分Android和iOS两端添加 和 ...

  • 推荐学习:第三方库中经常使用的功能--断言

    在第三方库中经常是可以看到断言的使用的。iOS中可以用的断言有NSAssert、NSParameterAssert...

  • iOS中断言

    NSAssert为条件断言,不满住条件会打印后边的描述信息; NSAssert(<#condition#>, <#...

  • iOS断言调试

    1. assert宏,如果括号内表达式结果为假,就闪退 调试窗口输出信息: 2.用@throw抛出异常,自己检查条...

  • NSAssert()使用目的

    转自iOS开发中断言的使用—NSAssert()[https://blog.csdn.net/univcore/a...

网友评论

      本文标题:iOS 断言

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