我理解 Swift 中的可选项,但我刚遇到了“双重可选项”,如果我不使用两个“!”符号,Xcode 将会给出编译器错误提示。
我知道
附:在使用快速枚举时是否有定义类型的方法?例如:
我有以下代码,其中可选类型 'String?' 的值未解包;你是想使用 '!' 还是 '?'?
app
是类型为 NSRunningApplication
的对象。let name: String = app.localizedName!
为什么我要使用两个 !
?因为这个变量的类型是 var localizedName: String?
,一个 !
不足以将其解包。
上下文:
如果我不使用 let name: String = app.localizedName!!
,Xcode 就会报编译器错误。变量 app
的定义如下:
var apps = NSWorkspace().runningApplications.filter{$0.activationPolicy == NSApplicationActivationPolicy.Regular}
for app in apps{
//code posted above
…
}
我知道
app
不是可选项,它总是有一个值,也不是可选应用程序。附:在使用快速枚举时是否有定义类型的方法?例如:
for Foo(app) in apps
其中 apps = [AnyObject]
。
app
到底是如何定义的?它可能是一个可选的 NSRunningApplication 吗? - Martin R