【问题标题】:Calling checkResourceIsReachableAndReturnError in Swift 2.0在 Swift 2.0 中调用 checkResourceIsReachableAndReturnError
【发布时间】:2015-09-22 15:49:17
【问题描述】:

我在从 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 的错误抛出函数的Swift 实现将缩短为checkResourceIsReachable,但似乎并非如此。 我确信我在这里做的事情根本上是错误的,如果有人对去哪里有建议,我将不胜感激。

【问题讨论】:

    标签: objective-c swift cocoa


    【解决方案1】:

    这个方法确实返回一个布尔值,它没有被修改为遵循 Swift 2 的新 do try catch 机制:它没有 throw

    所以你就这样使用它,不用do try catch

    var error:NSError?
    let folderExists = self.baseURL!.checkResourceIsReachableAndReturnError(&error)
    

    【讨论】:

    • 我也刚查过,定义还是没有 throw @available(iOS 4.0, *) public func checkResourceIsReachableAndReturnError(error: NSErrorPointer) -> Bool
    • 我认为在 Swift 3 中这现在是 checkResourceIsReachable() 并且只为 URL 类型返回 Bool
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    相关资源
    最近更新 更多