我有这个简单的代码:
let task = session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in
print(response)
do {
let JSON = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments)
// never printed
print(JSON)
guard let JSONDictionary :NSDictionary = (JSON as! NSDictionary) else {
print("Not a Dictionary")
return
}
print("JSONDictionary! \(JSONDictionary)")
}
catch let JSONError as NSError {
print("\(JSONError)")
}
});
//
task.resume()
好吧,我可以阅读回复,然后我得到(lldb)
并且应用程序崩溃了。永不打印print(JSON)
行。我真的无法理解发生了什么,感谢任何提示。
答案 0 :(得分:0)
您的数据不是JSON,它是JSONP(带填充的JSON)。 (http://webix.com/snippet/509f218d)
NSJSONSerialization
无法序列化JSONP。
由于try
失败,print(JSON)
无法执行,代码会跳转到catch
块。