17

我有一些(丑陋的)自写代码移植到 Swift2 并在 lambda 函数中收到此错误消息:

有错误的功能

我不明白的是,我使用错误抛出函数 JSONObjectWithData 处理整个代码并捕获错误。我没有在代码中抛出任何东西。尽管如此,编译器意味着我抛出了一个错误。

我需要了解这种行为。请善待,因为我知道我必须改进我的代码才能充分利用 swift2 中新的错误处理概念。

非常感谢您提前。

4

2 回答 2

38

这很快。在本文的一些帮助下,我已经找到了解决问题的方法:

http://www.hackingwithswift.com/new-syntax-swift-2-error-handling-try-catch

您必须在代码末尾放置一个通用的 catch 子句,因为仅 NSError 的 catch 是不够的。

catch let error as NSError
{
   failure(error: error)
   return
}

// this is important -->
catch
{
}
于 2015-06-14T06:46:14.263 回答
3

我认为最好的方法是将你的失败函数签名更改为ErrorType. 然后就

catch let error {
    failure(error: error)
}

会做。

于 2015-06-29T05:28:04.497 回答