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 次 |
| 最近记录: |