Swift断言

Swift为我们提供了一系列的assert方法来使用断言,其中最常用的一个是:

func assert(@autoclosure condition: () -> Bool,

                      _ message: StaticString = default,

                      file:StaticString = default,

                      line: UWord = default)


  1. let age = 18  
  2. // 这里age >= 18表示式的结果是true,所以这里断言什么也不做,代码继续往下执行  
  3. assert(age >= 18"A person'a age cannot be less than eighteen")  
  4. // 这里由于 age >= 22表达式的结果是false,所以这里就会出现中断,打印出  
  5. // ""A person's age cannot be less than 22"  
  6. assert(age > 22"A person's age cannot be less than 22"

//断言,如果条件不成立,抛出异常并打印信息
assert(intValue < 0, "intValue小于0", file: "iOS_Playground", line: 10)
assert(intValue < 0, "intValue小于0...")

什么时候使用断言呢?

包含下面的情况时使用断言:

1、整型下标索引作为值传给自定义索引实现的参数时,但下标索引值不能太低也不能太高时,使用断言

2、传值给函数但如果这个传过来的值无效时,函数就不能完成功能时,使用断言。

3、Optional值当前为nil,但是后面的代码成功执行的条件是要求这个值不能为nil,使用断言

断言的一个优点就是他是一个开发时的特性,只有在Debug编译时候有效,而在运行时是不被编译执行,因此断言并不会降低运行时的性能。


但有时我们可能出于某些目的的希望断言在调试开发时也停止工作,或者在发布版本中野继续有效。我们可以通过显示的填加编译标记达到这个目的。在对应target的Build Settings中,我们在Swift Compiler-Custom Flags中的Other Swift Flags中添加-assert-config Debug来强制启用断言,或者用-assert-config Release来强制禁用断言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值