这是我的代码,我收到错误:
var err: NSError?
var json = NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers, error: &err) as? NSDictionary
if let parseJSON = json {
let userId = parseJSON["userID"] as? String
if(userId != nil)
{
} else {
//display alert message
let userId = parseJSON["message"] as? String
var myAlert = UIAlertController(title: "Problem", message: error!.localizedDescription, preferredStyle: UIAlertControllerStyle.Alert);
let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler:nil)
myAlert.addAction(okAction);
self.presentViewController(myAlert, animated: true, completion: nil)
有人可以告诉我粗体文字有什么问题吗?
答案 0 :(得分:0)
您可能复制了一些为Swift 1.x编写的示例代码。
在Swift 2.x中,大多数API中的error
参数被Swift的本机错误处理所取代。像这样改写:
do {
var json = try NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers) as? NSDictionary
catch {
// Handle error here
print("Error: \(error)")
}
答案 1 :(得分:0)
您需要删除错误参数并使用try:
处理错误do {
let object:AnyObject? = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments)
} catch let caught as ErrorType {
completeWith(nil, response, caught)
}
答案 2 :(得分:0)
在Swift中,user = ModelChoiceField(queryset=User.objects.filter(
is_staff=True, profile__fieldtocheck=False), ...)
不会带JSONObjectWithData
个参数。它会引发错误。
error