0

我正在尝试更新我的项目以使用 Xcode 7.0,并且在更新我的 Swift 项目后,我在这条线上遇到了一个我不明白的错误。

let jsonData:NSDictionary = NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers ) as! NSDictionary

错误是

“调用可以抛出,但没有标记‘try’,错误未处理”

我的项目文件中也出现了这两个错误...

“链接器命令失败,退出代码为 1(使用 -v 查看调用)”

“错误:无法解析“/Users/MattFiler/Library/Developer/Xcode/DerivedData/ePlanner-cqwzlxqgpwaloubjgnzdlomjkfea/Build/Intermediates/SwiftMigration/ePlanner/Products/Debug-iphonesimulator/ePlannerTests.xctest/ePlannerTests”的调试图:没有文件或目录”

4

2 回答 2

1

如果它抛出错误,您需要尝试并捕获。

do {
    let jsonData:NSDictionary = try NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers ) as! NSDictionary
    //...
}
catch {
}
于 2015-06-09T19:39:32.963 回答
1

试试这个代码:

do {
    let jsonData = try NSJSONSerialization.JSONObjectWithData(urlData!, options: .MutableContainers ) as! NSDictionary
    // Use jsonData here
} catch {
    print("Well something happened: \(error)")
}

如果自 Swift 2 以来发生故障,您将需要try关键字,因为NSJSONSerialization.JSONObjectWithDatanow 会引发错误。抛出函数需要用tryor标记try!

此外,您还需要do { ... } catch捕获可能发生的任何错误。这将捕获错误并处理它。

您可能想阅读Swift 2 中的更改以了解发生这种情况的原因。WWDC 视频也将非常有帮助。

于 2015-06-09T20:12:21.317 回答