-2

运行代码时出现此错误: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()
    }
}
4

1 回答 1

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
}
于 2015-01-25T21:36:51.480 回答