有谁知道我哪里出错了?前2行是错误的地方.....额外的争论'错误'在电话中

时间:2016-03-18 18:26:27

标签: ios json parsing xcode7

这是我的代码,我收到错误:

        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)

有人可以告诉我粗体文字有什么问题吗?

3 个答案:

答案 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