尝试将数据保存到响应Swift Alamofire的核心数据时崩溃

时间:2015-01-12 12:22:49

标签: ios swift core-data asynchronous alamofire

嗯,我遇到的问题真的很奇怪。

我上传了一张图片,在上传了所有图片后,我想保存我的coredata tabel的路径。

我尝试使用此代码执行此操作:

     Alamofire.upload(urlRequest.0, urlRequest.1)
        .progress { (bytesWritten, totalBytesWritten, totalBytesExpectedToWrite) in
            //println("\(totalBytesWritten) / \(totalBytesExpectedToWrite)")
        }
        .responseJSON { (request, response, JSON, error) in
            println("REQUEST \(request)")
            println("RESPONSE \(response)")
            println("JSON \(JSON)")
            println("ERROR \(error)")
            if let dict = JSON as? [String: AnyObject] {
                println(dict)

                cd.saveUserPictures(dict["url"] as String,id: dict["id"] as String)

            }
    }

这个方法cd.saveUserPictures有效(我测试了它,只在这里得到这个错误。 错误本身是日志中的“llbd”错误,并带有错误代码:exc_bad_access code = exc_i386_BPT 来自服务器的响应是:

JSON Optional({
id = 31;
message = "messages.added_photo";
success = 1;
url = "fL0cK1/tvXtHvegqIqmmzGz.png";

}) 和println(字典)

[id:31,留言:messagess.added_photo,url:tvXtHvegqIqmmzGz.png,成功:1]

我做错了什么?

1 个答案:

答案 0 :(得分:1)

带有键" id"的对象是一个数字,而不是一个字符串 所以dict["id"] as String无法工作。将其替换为String(dict["id"] as Int)