ios - 大括号语句 block 是 Swift 2 中未使用的闭包

标签 ios swift swift2

override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)

if let directoryURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as? NSURL {

    let urls = try NSFileManager.defaultManager().contentsOfDirectoryAtURL(directoryURL, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions.SkipsHiddenFiles)
    //Error: Errors thrown from here are not handled

    catch let error as NSError {
    //Error: Consecutive statements on a line must be separated by ';'
    //Error: Braced block of statements is an unused closure
    //Error: Expected expression

        print("There's an error")
    }

    downloadedPhotoURLs = urls as [NSURL]
    collectionView!.reloadData()
}
}

这个错误很奇怪,try/catch 模式似乎没有任何问题,因为它在我的其他项目中工作正常,但我不知道为什么 Xcode 无法识别它。

最佳答案

你忘了使用do:

if let directoryURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as? NSURL {
    do {
        let urls = try NSFileManager.defaultManager().contentsOfDirectoryAtURL(directoryURL, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions.SkipsHiddenFiles)
        downloadedPhotoURLs = urls as [NSURL]
        collectionView!.reloadData()
    } catch let error as NSError {
        print(error)
    }
}

关于ios - 大括号语句 block 是 Swift 2 中未使用的闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32604373/

相关文章:

ios - 当init()也初始化成员变量并引用 "self"时super.init()放在哪里

ios - 根据键盘的可用性平滑地隐藏和显示按钮

ios - 弹出 collectionview 单元格并缩放 - uicollectionviewcell 动画

swift - 如何在快速加载屏幕后重置 badgeValue?

ios - 当@objc 和@nonobjc 在swift 中写在方法和变量之前?

IOS - Facebook 登录按钮 : Unrecognized selector error

swift - PushView不同类型的 Controller 得到不同的结果

ios - 如何在没有登录的情况下在 ios 中显示 facebook 新闻提要?

ios - Iphone 传递对象(导航栏上的按钮返回)

ios - SceneKit Directional Light 导致闪烁