1. 断言
1.1 使用断言进行调试
let age = -3
assert(age >= 0, "A person's age cannot be less than zero")
age >= 0
为false
,断言被触发,终止应用。
注意:
当代码使用优化编译的时候,断言将会被禁用,例如在Xcode中,使用默认的target Release
配置选项来build
时,断言会被禁用。断言只会在 Debug 模式下起作用,在 Release 版本中是被忽略的。
1.2 何时使用断言
当条件可能为假时使用断言,但是最终一定要保证条件为真,这样你的代码才能继续运行。断言的适用情景:
- 整数类型的下标索引被传入一个自定义小标实现,但是下标索引值可能太小或者太大
- 需要给函数传入一个值,但是非法的值可能导致函数不能正常执行
- 一个可选值现在是
nil
,但是后面的代码运行需要一个非nil
值