关闭

ios NSAssert()

标签: ios断言图片加载菊花
244人阅读 评论(0) 收藏 举报
分类:

一、断言初探

断言是这么定义的

define NSAssert(condition, desc,...)

有点类似条件表达式。conditon为条件表达式,值为YES或NO。desc为描述,NSString类型。当conditon为YES时程序继续运行,为NO时,则抛出带有desc描述的异常信息,异常信息可自定义。

断言可理解成:可执行的注释。
在高健壮性代码中,优先使用断言再处理错误。

二、断言的作用
1、降低复杂度
2、可以帮助开发者尽快定位bug

三、一些注意事项
开发者没有必要在应用程序的每个版本中都进行断言检查,这是因为大多数项目都是有两个版本:Debug版和Release版。在Debug版中,开发者希望所有的断言都检查到,而在Release版中,往往都是禁用断言检查的。
进行如下设置
在TARGETS中选择Build Settings,找到Preprocessor Macros(预处理宏)项目,配置它的Release为NS_BLOCK_ASSERTIONS,具体操作步骤为:双击Release后面的空白处,此时会弹出对话框,点击对话框中的+添加NS_BLOCK_ASSERTIONS即可。

四、结合小例子说明

gif中如果UIImageView没给fram,在debug下,执行断言。

这里写图片描述

demo地址: http://download.csdn.net/detail/qq_18505715/9727402

0
0
查看评论

iOS开发中断言的使用—NSAssert()

断言(assertion)是指在开发期间使用的、让程序在运行时进行自检的代码(通常是一个子程序或宏)。断言为真,则表明程序运行正常,而断言为假,则意味着它已经在代码
  • sharkleegroup
  • sharkleegroup
  • 2013-11-21 14:19
  • 23530

iOS --- 使用NSAssert来调试程序

NSAssert可用来对结果进行断言,如下用于断言UIButton的title不为空
  • icetime17
  • icetime17
  • 2015-10-22 07:24
  • 722

release时,禁用NSAssert

调试cocoa程序在程序出错时,不会马上停止。使用宏NSAssert可以让程序出错时马上抛出异常。在debug情况下,所有NSAssert都会被执行。在release下不希望NSAssert被执行,我们通常在release种将断言设置成禁用。 设置方法:在targets种选择build,选择rel...
  • yueyuanchang
  • yueyuanchang
  • 2015-01-04 21:17
  • 238

Masonry1.0.2 源码解析

在了解Masonry框架之前,有必要先了解一下自动布局的概念。在iOS6之前,UI布局的方式是通过frame属性和Autoresizing来完成的,而在iOS6之后,苹果公司推出了AutoLayout的布局方式,它是一种基于约束性的、描述性的布局系统,尤其是苹果的手机屏幕尺寸变多之后,AutoLay...
  • KelvinFlying
  • KelvinFlying
  • 2017-08-21 08:50
  • 197

iOS中NSAssert()断言的使用

断言(assertion)是指在开发期间使用的、让程序在运行时进行自检的代码(通常是一个子程序或宏)。断言为真,则表明程序运行正常,而断言为假,则意味着它已经在代码中发现了意料之外的错误。断言对于大型的复杂程序或可靠性要求极高的程序来说尤其有用。 有关断言的详细信息,推荐大家一定去看《代码大全...
  • ergoucheng
  • ergoucheng
  • 2015-01-23 19:29
  • 726

IOS 第三方库 MBProgressHUD的基本使用

和gitHub上的Demo其实差不多,就是小整理了下,当备忘,想做复杂的效果可以参考MBProgressHUD在gitHub上的DEMO,写得也很清楚明了。 先下载MBProgressHUD.h和.m文件,拖入工程。地址:MBProgressHUD 本人对其做了简单得封装,便于使用: #pra...
  • robinson_911
  • robinson_911
  • 2015-04-21 22:42
  • 511

IOS-35-NSAssert的使用

苹果在foundation.framework中定义了这么一个宏: #define NSAssert(condition, desc, ...) 第一个参数为一个条件判断,如果为假,则抛出异常,显示第二个参数所描述的信息。 例如 NSAssert(2>=4.4, @"2>=4....
  • IOT_LI
  • IOT_LI
  • 2015-12-02 11:47
  • 351

NSAssert,NSCassert

在苹果的SDK中可以看到这两个都是定义的宏 NSAssert 的定义如下: #define NSAssert(condition, desc, ...)  \ do {         ...
  • likendsl
  • likendsl
  • 2014-07-03 10:58
  • 3762

iOS 断言(NSAssert)的使用

NSAssert()是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug,满足条件返回真值,程序继续运行,如果返回假值,则抛出异常,并且可以自定义异常描述。 NSAssert()是这样定义的: #define NSAssert(conditio...
  • xiaohe901216
  • xiaohe901216
  • 2016-12-01 14:41
  • 432

iOS NSAssert

苹果在foundation.framework中定义了这么一个宏: #define NSAssert(condition, desc, ...) 第一个参数为一个条件判断,如果为假,则抛出异常,显示第二个参数所描述的信息。 例如 NSAssert(2>=4.4, @&q...
  • zixiweimi
  • zixiweimi
  • 2014-08-06 17:44
  • 386
    个人资料
    • 访问:156611次
    • 积分:2581
    • 等级:
    • 排名:第16775名
    • 原创:136篇
    • 转载:5篇
    • 译文:0篇
    • 评论:17条
    最新评论