所以我试图在我的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
。有谁知道这意味着什么?
提前谢谢。
(我正在使用Xcode Beta 6 v7和OS X 10.10)
答案 0 :(得分:5)
您正在重复使用传入块的error
变量 - 您只需定义一个本地可选变量并将其引用传递给JSONObjectWithData
var myError: NSError?
self.data = NSJSONSerialization.JSONObjectWithData(response, options:NSJSONReadingOptions.MutableLeaves, error: &myError)
这是因为JSONObjectWithData
需要引用NSError
类型的变量。传递给块的那个是不可变的 - 它指向NSError
的实例,但不能重新分配指向另一个实例,或者在没有错误的情况下设置为nil。