-2

I'm getting this error when I run my code: fatal error: unexpectedly found nil while unwrapping an Optional value, what could be causing this?

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()
    }
}
Caleb Kleveter
  • 11,170
  • 8
  • 62
  • 92

1 Answers1

1

JSONObjectWithData returns an optional. This is where your error is coming from. Unwrapping it will get rid of the error.

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
}
keithbhunter
  • 12,258
  • 4
  • 33
  • 58