我在运行代码时遇到此错误:fatal error: unexpectedly found nil while unwrapping an Optional value
,可能导致此问题?
var bodyData = "tel_client=\(phoneNumber)&id_pays=\(phoneCode)&datetime_alibi=\(getDateTimeFormat(date))&tel_contact=\(to)&nb_rappel_alibi=1&pr_rappel_alibi=5"
//println(bodyData)
request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {
(response, data, error) in
var error: NSError?
var jsonData: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options:nil, error: &error) as NSDictionary
if jsonData["success"] as Int == 1 {
let alertView = UIAlertView(title: "GOOD", message: nil, delegate: self, cancelButtonTitle: "ok")
alertView.show()
} else {
let alertView = UIAlertView(title: "ERROR", message: jsonData["message"] as? String, delegate: self, cancelButtonTitle: "ok")
alertView.show()
}
}
答案 0 :(得分:1)
JSONObjectWithData
返回一个可选项。这是您的错误来自的地方。展开它将消除错误。
var jsonData = NSJSONSerialization.JSONObjectWithData(data, options:nil, error: &error) as? NSDictionary
// unwrap the optional
if let json = jsonData {
if json["success"] as Int == 1 {
let alertView = UIAlertView(title: "GOOD", message: nil, delegate: self, cancelButtonTitle: "ok")
alertView.show()
} else {
let alertView = UIAlertView(title: "ERROR", message: json["message"] as? String, delegate: self, cancelButtonTitle: "ok")
alertView.show()
}
} else {
// jsonData was nil
}