我在从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)

10-08 07:30