如何使用swift在Parse上存储字典?

时间:2015-05-20 07:29:21

标签: swift parsing dictionary pfobject

我对swift很新,我根本不了解Obj C,所以很多资源都很难理解。基本上我正在尝试使用我的查询中的PFUsers填充字典,然后将PFUser [“friends”]设置为此字典。简单地说,我想在我的PFUser类中有一个朋友列表,其中每个朋友都是PFUser和一个字符串。 谢谢!

        var user = PFUser()
        var friendsPFUser:[PFUser] = []
        var friendListDict: [PFUser:String] = Dictionary()

        var query = PFUser.query()
        query!.findObjectsInBackgroundWithBlock {
            (users: [AnyObject]?, error: NSError?) -> Void in

            if error == nil {
                // The find succeeded.
                println("Successfully retrieved \(users!.count) users.")
                // Do something with the found objects
                if let users = users as? [PFUser] {
                    friendsPFUser = users
                    for user in friendsPFUser{
                        friendListDict[user] = "confirmed"
                    }
                    user["friends"] = friendListDict //this line breaks things
                    user.saveInBackground()
                }
            } else {
                // Log details of the failure
                println("Error: \(error!) \(error!.userInfo!)")
            }
        }

要清楚,此代码编译但是当我添加

user["friends"] = friendListDict

我的应用崩溃了。

1 个答案:

答案 0 :(得分:0)

对于那些可能遇到此问题的人。 " NSInternalInconsistencyException"有理由" PFObject包含未被缓存的容器项。" 出于安全原因在Parse上向用户添加对象(例如数组或词典),将要修改的此类字段的用户必须是当前用户。 尝试注册并在块中使用addObject,不要忘记保存它! 这有助于解决我遇到的类似问题。