Wenn ich versuche, mich anzumelden, erhalte ich die richtige Antwort. Aber nach dem Erfolg. Ich bekomme Absturz als optionalen Wert.Der optionale Wert stürzt beim Anmelden ab
Hier ist mein vollständiger Code:
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()
}
}
}
}
und ich bin in dieser Linie immer Absturz:
let success:NSInteger = jsonData.valueForKey("success") as! NSInteger
Der Fehler ist crash.I Optionswert nicht wissen, wie diese error.Does zu handhaben jeder Experte bitte geben Sie mir eine Idee oder eine Lösung, um diesen Absturz zu beheben
Weil 'jsonData.valueForKey ("Erfolg")' nill ist. Überprüfe deine Antwort. –
Das bedeutet.Was soll ich brauchen, um – mack
'Antwort ==> {" Status ": 1," Nachricht ":" Registrierung erfolgreich. "," CustomerId ": 2} 2016-08-09 12: 39: 02.228 M-Commerce [1454: 71029] Fehler ist nächste Zeile: 140725375544912 Schwerwiegender Fehler: unerwartet gefunden, Null beim Entpacken ein Optionaler Wert ' – mack