【发布时间】:2016-06-21 14:04:53
【问题描述】:
使用 AlamoFire,我可以对我的端点进行 API 调用,它可以正常工作并按预期连接。使用打印工具,我可以将 JSON 响应打印到控制台并查看 JSON 字符串,但我无法让该字符串移动到下一个函数。
我不断收到错误:
"fatal error: unexpectedly found nil while unwrapping an Optional value (lldb)"
我的代码如下所示:
func getDataForUser(Username:String, UserToken:String) {
print("Getting data for user \(Username)")
Alamofire.request(.POST, baseURL+userdataURL, parameters: ["Username": Username, "UserToken": UserToken]).response { (req, res, data, error) -> Void in
let jSONResponse: NSDictionary = (try! NSJSONSerialization.JSONObjectWithData(data!,options: NSJSONReadingOptions.MutableContainers)) as! NSDictionary
print(jSONResponse)
if(jSONResponse["Success"] as! Bool == true) {
print("Success! API Request Worked")
self.delegate!.didReceiveAPIResults(jSONResponse)
}
}
}
错误在线:
self.delegate!.didReceiveAPIResults(jSONResponse)
控制台如下所示:
jSONResponse NSDictionary 2 key/value pairs 0x78e8d6a0
[0] (null) "Success" : "1"
[1] (null) "Response" : 2 key/value pairs
jSONResponse 的调试屏幕为我提供了可以深入研究的数据,因此我知道它不是零。 nil 来自哪里,我该如何解决?
【问题讨论】:
-
崩溃在哪一行?
-
self.delegate!.didReceiveAPIResults(jSONResponse)
-
那么很简单:你的代表是零。
-
那是什么意思?我认为委托是由 jSONResponse 填充的?
-
@EricD 这就是我的想法。什么类符合委托?你能告诉我们这是在哪里发生的吗?