【发布时间】:2015-10-21 07:27:17
【问题描述】:
我目前正在使用 Swift 2.0 和 Xcode 7.0.1 开发我的第一个 iOS 应用程序。
我遇到了一个似乎无法修复的奇怪小错误:
var err: NSError?
原代码:
//var json = NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers, error: &err) as? NSDictionary
Swift2 重写代码:
do {
if let json = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSDictionary {
print(json)
}
} catch {
print(error)
}
重写前使用未解析的标识符“json”
if let parseJSON = json {
var resultValue = parseJSON["status"] as? String
print("result: \(resultValue)")
var isUserRegistered:Bool = false;
if(resultValue=="Success") { isUserRegistered = true; }
var messageToDisplay:String = parseJSON["message"] as! String!;
if(!isUserRegistered)
{
messageToDisplay = parseJSON["message"] as! String!;
}
dispatch_async(dispatch_get_main_queue(),{
//Display alert message with confirmation.
var myAlert = UIAlertController(title:"Alert", message:messageToDisplay, preferredStyle: UIAlertControllerStyle.Alert);
let okAction = UIAlertAction(title:"Ok", style:UIAlertActionStyle.Default){ action in
self.dismissViewControllerAnimated(true, completion: nil);
}
myAlert.addAction(okAction);
self.presentViewController(myAlert, animated:true, completion:nil);
});
}
在这一行抛出错误:
if let parseJSON = json {
谁能告诉我我在这里做错了什么?
【问题讨论】:
-
将您的代码移至 if let 语句...
-
您的 json 未全局声明...所以您需要将代码从
if let parseJSON = json移动到 do...catch -
改写后出现这样的消息正常吗? link
-
只要按照说明,你就可以整理出那些消息
-
好的!没有错,谢谢:)