2015-09-29 41 views
1

我设计了一个肯定会返回值的自定义对象。现在整个应用程序都是围绕该自定义对象构建的。现在出现了可能导致自定义对象为零的条件。Swift可选项:如果我需要将非可选类型更改为可选

我该怎么做。将类型更改为可选?并在任何地方更改代码以展开。其他更好的解决方案?

+1

将类型更改为'Optional',然后在出现编译器错误的每个地方处理nil情况。 – Aderstedt

回答

3

将类型更改为隐式解包可选。通过这种方式,您可以在任何地方将它用作常规非可选值,肯定不会是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 

通常你想避免隐含展开自选,除非,你不能初始化对象的情况下由于技术原因,例如太早在Interface Builder网点或异步初始化对象的情况下,等

0

类型更改为可选那么就应该允许值too.Check这下面的例子将帮助您:

var specialValue :String? = "Some Value" 

if let value = specialValue { 
    // do some stuff. 
}else { 
    // Here specialValue is nil value. 
} 

(或) Swift 2.0,我们被允许使用后卫

guard let value = specialValue { return } 
print(value) 
相关问题