Xcode 断言的使用(一)

昨天听别人讲到断言,我感到很好奇,今天忙完别的事情后就了解和尝试使用一下,以后会陆续把单元测试以及断言相关的内容贴出来。

格式和说明:

1、格式: NSAssert(isRealName == YES, @"不是真实的名字!");
2、说明,如果满足isRealName == YES这个条件时,能正常运行通过;如果不满足这个条件,程序则会运行崩溃,并输出后面的提示。
3、断言只在Debug模式下使用,Release模式下不执行。

使用案例:
[RequestManager requestForFxxCxxxWithImageData:[self dictionaryToJsonStringWithDic:dic]
                                                   success:^(NSDictionary *success) {
                                                       //识别数据为空(也就是返回结果里面没有任何数据)的时候  会报错。
                                                       NSAssert(![success isEqualToDictionary:[NSDictionary dictionary]], @"识别结果数据不能为空!");
                                                   }
                                                      fail:^(NSError *fail) {
                                                      }];
说明:

上面是我写的网络请求,因为success为空,里面没有任何数据时,所以运行崩溃,并输出如下提示:


2017-08-10 11:20:19.329 XXOO[6894:2515819] *** Assertion failure in -[XXController selectedToRecognizeFace], /Users/XX/Desktop/XX/XXOO/XXOO/Sections/XXF/XXController.m:443
2017-08-10 11:20:19.330 XXOO[6894:2515819] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '识别结果数据不能为空!'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,643评论 9 467
  • 本文结构 参考孟岩老师的文章,对本文结构如下划分 基本数据类型基本语法数组和其他集合类基本输入输出和文件处理,输入...
    不抄完整本三国不改名阅读 543评论 0 1
  • 1. NSAssert 断言(NSAssert)是一个宏,在开发过程中使用NSAssert可以及时发现程序中的问题...
    pro648阅读 6,504评论 0 4
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,757评论 25 709