iOS之断言NSAssert
来源:互联网 发布:房地产 知乎 编辑:程序博客网 时间:2024/05/17 09:11
断言(Assert):
在程序设计中,断言(assertion)是一种放在程序中的一阶逻辑(如一个结果为真或是假的逻辑判断式),目的是为了标示与验证程序开发者预期的结果-当程序运行到断言的位置时,对应的断言应该为真。若断言不为真时,程序会中止运行,并给出错误消息。(《维基百科》)
实际开发中,我们通常将Assert与异常混淆, 不知道什么时候使用Assert,什么时候使用异常处理。或者不用Assert,将一切情况都归为异常。这样一来,就掩盖了问题,当问题发生的时候,很难进行定位,而这些问题本该是在开发的时候就解决掉的。同时,也增加了开销(在c#中,debug.Assert()编译成release版本时,不会产生任何代码,而try/catch在debug/release版本中都是有代码产生,运行时需要开销)。
断言assert用在那些你知道绝对不会发生的事情上,assert用来捕捉的是程序员自己的错误;
exception捕捉的是用户或者环境的错误。
NSAssert()只是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug,满足条件返回真值,程序继续运行,如果返回假值,则抛出异常,并切可以自定义异常描述。NSAssert()是这样定义的:
#define NSAssert(condition, desc)
condition是条件表达式,值为YES或NO;desc为异常描述,通常为NSString。当conditon为YES时程序继续运行,为NO时,则抛出带有desc描述的异常信息。NSAssert()可以出现在程序的任何一个位置。具体事例如下:
就这么简单
作者:南京杨小兵
链接:http://www.jianshu.com/p/da65341ea271
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
iOS中,NSAssert 是一个宏,其定义为:
NSAssert可以给代码带来很大的方便,其使用方法很简单。第一个参数condition为一个返回YES或NO的表达式;第二个参数desc为前一个表达式验证不通过时输出的信息。
例:我们在程序中添加如下两行代码:
执行时,程序会报错中断,控制台输出如下:
通常在开发过程,debug版会执行所有断言检查,release版不会进行断言检查。这样我们通过更改项目开发模式便可以很便捷的调试程序。设置开发版本是debug还是release的地方在:Product -> Scheme -> Edit Scheme
- iOS之断言NSAssert
- iOS断言NSAssert
- iOS断言 NSAssert的使用
- iOS 断言(NSAssert)的使用
- NSAssert()断言
- NSAssert(断言)
- iOS开发中断言的使用NSAssert()
- iOS 使用断言NSAssert()调试程序错误
- iOS中NSAssert()断言的使用
- iOS 使用断言NSAssert()调试程序错误
- ios断言的使用(NSAssert)
- IOS开发之NSAssert
- iOS开发中断言的使用—NSAssert()
- [IOS 开发] 使用断言NSAssert()调试程序错误
- (转载)iOS开发中断言的使用—NSAssert()
- IOS学习 NSAssert和NSAssertion?Handler:断言相关
- iOS 断言 NSAssert的使用 调试程序错误
- iOS开发中断言的使用—NSAssert()
- 算法导论 学习笔记 第七章 快速排序
- C# 邮件发送
- MVP的概述
- Java+opencv3.2.0之膨胀与腐蚀
- 图片亮度
- iOS之断言NSAssert
- json获取数据库的信息在前端页面显示
- ThinkPHP5 响应输出
- spring中applicationContext.xml在web.xml中的配置路径说明
- 逆序对
- UVa 10912
- 【C语言】数组
- 经济生活知识
- MySQL中的锁(表锁、行锁,共享锁,排它锁,间隙锁)