在运行NSAppleScript.executeAndReturnError应该失败的Applescript命令并返回错误时,我收到Can't unwrap Optional.None错误errorDict.
var errorDict: NSDictionary? = nil
var scriptObject:NSAppleScript = NSAppleScript(source: command)
var execute:NSAppleEventDescriptor = scriptObject.executeAndReturnError(&errorDict)
Run Code Online (Sandbox Code Playgroud)
我知道错误是由于解包nil可选变量,但executeAndReturnError必须采用可选变量.我怎么能解决这个问题?
尝试初始化NSAppleScript对象而非对象时,很可能发生此错误NSDictionary?.NSAppleScript(source:)是一个可用的初始化程序,这意味着nil如果编译脚本时发生错误,它可能会返回.您的代码应如下所示:
if let scriptObject = NSAppleScript(source: command) {
var errorDict: NSDictionary? = nil
let execute = scriptObject.executeAndReturnError(&errorDict)
if errorDict != nil {
// script execution failed, handle error
}
} else {
// script failed to compile, handle error
}
Run Code Online (Sandbox Code Playgroud)
Sulthan的答案很有道理,但是从Swift 1.2开始,即使它可以executeAndReturnError(errorInfo:)返回一个Optional类型,也不再返回类型nil(请参阅此雷达).处理执行失败的正确方法是检查errorInfo字典是否有错误.
| 归档时间: |
|
| 查看次数: |
762 次 |
| 最近记录: |