我设计了一个自定义对象,它肯定会返回一个值。现在整个应用程序都是围绕该自定义对象构建的。现在出现了可能导致自定义对象为零的情况。
我该怎么办 。将类型更改为可选?并在各处更改代码以展开。还有其他更好的解决方案吗?
我设计了一个自定义对象,它肯定会返回一个值。现在整个应用程序都是围绕该自定义对象构建的。现在出现了可能导致自定义对象为零的情况。
我该怎么办 。将类型更改为可选?并在各处更改代码以展开。还有其他更好的解决方案吗?
将类型更改为隐式展开的可选。通过这种方式,您可以在任何您确定它不会出现的nil
地方(或在哪里nil
意味着不可恢复的错误)将它用作常规的非可选值,并在可能出现的地方检查 nil nil
。
例子:
let stringOrNil:String! = "foo"
if let string = stringOrNil { // used like an optional type
println(string)
}
println(stringOrNil.isEmpty) // used like a non-optional type, will crash is stringOrNil is nil
通常,您会希望避免隐式展开的选项,除非由于技术原因您不能过早初始化对象,例如在接口构建器出口或异步初始化对象等的情况下。
将类型更改为Optional然后它也应该允许nil值。检查下面的示例将帮助您:
var specialValue :String? = "Some Value"
if let value = specialValue {
// do some stuff.
}else {
// Here specialValue is nil value.
}
(或)在Swift 2.0中,我们可以使用guard。
guard let value = specialValue { return }
print(value)