當我嘗試註冊時,我收到了正確的回覆。但獲得成功後,我會以可選值的形式崩潰。註冊時出現可選值崩潰
這裏是我的全碼:
var post:NSString = "name=\(Username)&email=\(Email)&phone=\(phonenumb)&password=\(Password)&address=\(address)"
NSLog("PostData: %@",post);
var url:NSURL = NSURL(string: "http://userregistration.php")!
// let url:NSURL = NSURL(string: "http://userregistration.php")!
let postData:NSData = post.dataUsingEncoding(NSASCIIStringEncoding)!
let postLength:NSString = String(postData.length)
let request:NSMutableURLRequest = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"
request.HTTPBody = postData
request.setValue(postLength as String, forHTTPHeaderField: "Content-Length")
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.setValue("application/json", forHTTPHeaderField: "Accept")
let reponseError: NSError?
var response: NSURLResponse?
do {
let urlData = try? NSURLConnection.sendSynchronousRequest(request, returningResponse: &response)
if (urlData != nil) {
let res = response as! NSHTTPURLResponse!;
NSLog("Response code: %ld", res.statusCode);
if (res.statusCode >= 200 && res.statusCode < 300)
{
let responseData:NSString = NSString(data:urlData!, encoding:NSUTF8StringEncoding)!
NSLog("Response ==> %@", responseData);
do {
let jsonData = try NSJSONSerialization.JSONObjectWithData(urlData!, options: []) as! NSDictionary
let success:NSInteger = jsonData.valueForKey("success") as! NSInteger
//[jsonData[@"success"] integerValue];
NSLog("Success: %ld", success);
if(success == 1)
{
NSLog("Sign Up SUCCESS");
//self.dismissViewControllerAnimated(true, completion: nil)
} else {
var error_msg:NSString
if jsonData["error_message"] as? NSString != nil {
error_msg = jsonData["error_message"] as! NSString
} else {
error_msg = "Unknown Error"
}
let alertView:UIAlertView = UIAlertView()
alertView.title = "Sign Up Failed!"
alertView.message = error_msg as String
alertView.delegate = self
alertView.addButtonWithTitle("OK")
alertView.show()
}
} catch let error as NSError {
print("json error: \(error.localizedDescription)")
}
} else {
let alertView:UIAlertView = UIAlertView()
alertView.title = "Sign Up Failed!"
alertView.message = "Connection Failed"
alertView.delegate = self
alertView.addButtonWithTitle("OK")
alertView.show()
}
}
}
}
,我在這行越來越崩潰:
let success:NSInteger = jsonData.valueForKey("success") as! NSInteger
的錯誤是期權價值crash.I不知道如何處理這種error.Does任何專家請給我一些想法或一些解決方案來糾正這次崩潰
因爲'jsonData.valueForKey( 「成功」)'是nill。檢查你的迴應。 –
這意味着什麼我需要chnage – mack
'Response ==> {「status」:1,「message」:「註冊成功。」,「CustomerId」:2} 2016-08-09 12:39:02.228 M-Commerce [1454:71029]錯誤是下一行:140725375544912 致命錯誤:意外地發現零,同時展開一個可選值 ' – mack