use*_*492 9 xcode optional swift
我理解Swift中的可选项是什么,但我刚刚遇到了"Double Wrapped Optional",如果我不使用两个'!'
Xcode则会出现编译错误
可选类型'String?'的值 没有打开; 你的意思是用'!' 要么 '?'?
我有以下代码,其中app
是类型NSRunningApplication
.
let name: String = app.localizedName!
Run Code Online (Sandbox Code Playgroud)
我为什么要用两个!
?不足以打开变量因为它是类型var localizedName: String?
.
上下文:
Xcode要我使用let name: String = app.localizedName!!
,否则它会给出上面的编译错误.该app
变量被定义为如下:
var apps = NSWorkspace().runningApplications.filter{$0.activationPolicy == NSApplicationActivationPolicy.Regular}
for app in apps{
//code posted above
…
}
Run Code Online (Sandbox Code Playgroud)
所以我知道这app
不是一个可选的,并且总是有一个值,也不是一个可选的应用程序.
PS有没有办法在使用快速枚举时定义类型?喜欢for Foo(app) in apps
哪里apps = [AnyObject]
.
问题是NSWorkspace().runningApplications
返回的数组AnyObject
必须转换为以下数组
NSRunningApplication
:
let apps = NSWorkspace().runningApplications as! [NSRunningApplication]
let filteredApps = apps.filter {
$0.activationPolicy == NSApplicationActivationPolicy.Regular
}
for app in apps {
let name: String = app.localizedName!
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2789 次 |
最近记录: |