我在从Swift 1.2迁移到2.0时遇到一些问题,特别是在从Objective-C API调用方法时理解错误处理。例如,我无法正确实现方法checkResourceIsReachableAndReturnError
。根据此方法的swift文档,它将返回bool。我想检查文件夹(self.baseURL
)是否存在,并尝试以下两种方法:
let folderExists: Bool
do{
try folderExists = self.baseURL!.checkResourceIsReachableAndReturnError(){
} catch let error as NSError {
}
}
还有:
let folderExists: Bool
var error: NSError?
do{
try folderExists = self.baseURL!.checkResourceIsReachableAndReturnError(&error){
} catch error as NSError {
}
}
但这两种方法都不起作用。我还认为,使用单词
AndReturnError
快速实现错误抛出函数将被缩短为checkResourceIsReachable
,但情况似乎并非如此。我确信我在这里做了一些根本性的错误,如果有人建议去哪里看,我会很感激的。
最佳答案
这个方法确实返回了一个bool,它没有被修改为遵循swift 2的新的do try catch
机制:它没有throw
。
所以你只需要这样使用它,而不需要:
var error:NSError?
let folderExists = self.baseURL!.checkResourceIsReachableAndReturnError(&error)