0

我对 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

我的应用程序崩溃。

4

1 回答 1

0

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

于 2015-11-10T04:16:54.480 回答