我试图从我自己的API中获取数据。我可以看到我的控制台日志中的数据,但它一直给我发现nil错误。
继承我的代码:
let request = NSMutableURLRequest(URL: NSURL(string: "linkHere")!)
request.HTTPMethod = "POST"
let postString = "sol=\(name)§or=\(sector)"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
print("error=\(error)")
return
}
print("response = \(response)")
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("responseString = \(responseString)")
do {
self.json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves) as? NSDictionary
} catch let error as NSError{
print("TEST Error \(error)")
}
if let parseJSON = self.json {
dispatch_async(dispatch_get_main_queue())
{
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("detailView") as! detailViewController
let x = parseJSON["sector"] as! String
vc.secLab = x
self.presentViewController(vc, animated: true, completion: nil)
}
}
}
task.resume()
在我的控制台日志中,我可以看到数据见下图:
我做错了什么?
答案 0 :(得分:4)
基本上,在捕获错误并仅打印它之后继续执行“好”代码是一个坏主意。
如果您打开joins
分支中的转换类型,它会在成功时变为非可选类型,否则会捕获相应的错误。
语法应该看起来像
INNER JOIN
答案 1 :(得分:3)
您已将json转换为可选的NSDictionary,但您的json响应是您附加的屏幕截图中的数组外观方括号。