iOS断言

NSAssert()是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug,满足条件返回真值,程序继续运行,如果返回假值,则抛出异常,并且可以自定义异常描述。
NSAssert()是这样定义的:
#define NSAssert(condition, desc)
condition是条件表达式,值为YES或NO;desc为异常描述,通常为NSString。当conditon为YES时程序继续运行,为NO时,则抛出带有desc描述的异常信息。NSAssert()可以出现在程序的任何一个位置。

在iOS开发中,可以使用宏NSAssert()在程序中进行断言处理。NSAssert()使用正确,可以帮助开发者尽快定位bug。开发者没有必要在应用程序的每个版本中都进行断言检查,这是因为大多数项目都是有两个版本:Debug版和Release版。在Debug版中,开发者希望所有的断言都检查到,而在Release版中,往往都是禁用断言检查的。设置Release版本中禁用断言的方法如下:

在Build Settings菜单,找到Preprocessor Macros项,Preprocessor Macros项下面有一个选择,用于程序生成配置:Debug版和Release版。选择 Release项,设置NS_BLOCK_ASSERTIONS,不进行断言检查。如下图所示。

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

推荐阅读更多精彩内容

  • 1.什么是断言? 断言本质只是一个宏NSAssert(condition, desc),当表达式(conditio...
    船长_阅读 1,216评论 0 14
  • 一直想写一篇你关于断言的文章, 今天有时间赶紧写出来.参考 Mattt 文章 一、Objective - C 中的...
    Mitchell阅读 11,087评论 1 24
  • 说在前面的话 什么叫断言?你会想到这个东西NSAsert.但是,不好意思.今天我所要说的不是这个.这个是系统的,即...
    CoderHG阅读 5,912评论 5 14
  • 为什么我们的每一天每一年那么像? 为什么生活中总是有重复的事情发生?为什么有些事情总是找不到合适的办法解决?真的有...
    向日葵小E阅读 566评论 1 3
  • 本文开始,将利用《spring源码阅读1——环境搭建&阅读方法》中提到的方法逐步对spring源码进行解读。 顺藤...
    鹰涯阅读 1,506评论 5 17