swift断言(Assertions)

Swift中的断言与ObjectiveC中的断言有很多不一样的地方,使用起来差不多。

什么是断言?

断言通常是用于诊断条件是否满足,如果不能满足就会中断程序。使用assert函数来添加断言。

如果条件为真,那么就什么也不做,可以继续往下走。如果条件为假,那么就会抛出crash信息,程序中断退出。

var valueId = ""

// 这里会crash,因为条件为假
// 崩溃信息为:assertion failed: : file , line 86
assert(valueId.isEmpty == false)

assert函数的方法为:

public func assert(@autoclosure condition: () -> Bool, @autoclosure _ message: () -> String = default, file: StaticString = default, line: UInt = default)

对于此方法,我们有很多个缺省值的参数,因此我们也可以传我们自定义的参数。

// assertion failed: optoinalValue2不为空: file , line 89
assert(optoinalValue2.isEmpty == true, "optoinalValue2不为空")

Swift还提供了直接断言失败的API:

// fatal error: : file , line 92
assertionFailure()

当前这个断言失败的API也可以传参数,指定错误信息。指定特定的错误信息,目的是让我们开发人员更精准地定位到出错的问题所在。

// fatal error: 反正是失败了: file , line 96
assertionFailure("反正是失败了")

你可能感兴趣的:(swift断言(Assertions))