3

所以我试图在我的 Swift iOS 应用程序中的 SLRequest 对象上使用 performRequestWithHandler 块,但我无法处理 NSError 对象。这就是我的代码的样子:

posts.performRequestWithHandler({(response:NSData!, urlResponse:NSHTTPURLResponse!, error:NSError!) in
    self.data = NSJSONSerialization.JSONObjectWithData(response, options: NSJSONReadingOptions.MutableLeaves, error: &error)
})

我有一个错误&error,上面写着:'NSError' is not convertible to '@lvalue inout $T9' in Swift。有谁知道那是什么意思?

先感谢您。

(我在 OS X 10.10 中使用 Xcode Beta 6 v7)

4

1 回答 1

5

您正在重用error传入块的变量 - 您只需定义一个本地可选变量并将其引用传递给JSONObjectWithData

var myError: NSError?
self.data = NSJSONSerialization.JSONObjectWithData(response, options:NSJSONReadingOptions.MutableLeaves, error: &myError)

发生这种情况是因为JSONObjectWithData需要对NSError类型变量的引用。传递给块的那个是不可变的——它指向 的一个实例NSError,但不能重新分配以指向另一个实例,或者在没有错误的情况下设置为 nil。

于 2014-09-05T20:02:39.713 回答