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

この問題を抱えている可能性のある人のために。「PFObject には、キャッシュされていないコンテナ項目が含まれています」という理由の「NSInternalInconsistencyException」。Parse でのセキュリティ上の理由から、オブジェクト (配列や辞書など) をユーザーに追加する場合、変更されるそのようなフィールドのユーザーは現在のユーザーである必要があります。サインアップして、ブロック内で addObject を使用してみてください。忘れずに保存してください。私が抱えていた同様の問題に役立ちました。

于 2015-11-10T04:16:54.480 に答える