0

私の問題は、ユーザーの配列フィールドに新しい数字を追加することです。すべてのコードが機能しているように見えますが、saveAll 関数に問題があります。私はいくつかの異なる機会にチェックしたので、すべての名前は正しいです.

func taskAllocation(){
        var query = PFUser.query()
        var objectQuery:[PFUser] = [PFUser]()
        query.whereKey("Year", equalTo: yearTextField.text.toInt())
        query.whereKey("Class", equalTo: classTextField.text.toInt())
        query.whereKey("Keystage", equalTo: keystageTextField.text.toInt())

    query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]!, error: NSError!) -> Void in

        if error != nil {
            println(error)
        } else {
            if objects.isEmpty {
                println("empty query")
            } 
            else {

                for object in objects as [PFUser]  {

                    var test:[Int] = object["taskIDs"] as [Int]
                    test.append(self.getIndex)
                    println(test)

                object["taskIDs"] = test
                object["tasksCompleted"] = "hello"
                objectQuery.append(object)


                }//For


                println(objectQuery.count)
                if objectQuery.count != 0{
                    println("Success!!!")
                    println(objectQuery)
                    PFUser.saveAllInBackground(objectQuery)

                }

            }

      }

    }

以下は、タスク ID が追加され、taskCompleted に文字列が含まれていることがわかるように、println(objectQuery) に格納されています。これにより、saveallinbackground 関数に問題があると思われます。

[<PFUser: 0x155f6510, objectId: W6TrPQwCQ7, localId: (null)> {
    Class = 2;
    Forename = "Joe ";
    Keystage = 2;
    Surname = Freeston;
    Year = 4;
    admin = false;
    completedTaskIDs =     (
    );
    taskIDs =     (
        0,
        2,
        4,
        5,
        6,
        46
    );
    tasksCompleted = hello;
    tasksCorrect = 0;
    userType = Student;
    username = jfreeston;
}, <PFUser: 0x1569b7a0, objectId: slLd1KBIaM, localId: (null)> {
    Class = 2;
    Forename = "Camilla ";
    Keystage = 2;
    Surname = Linhart;
    Year = 4;
    admin = false;
    completedTaskIDs =     (
    );
    taskIDs =     (
        0,
        46
    );
    tasksCompleted = hello;
    tasksCorrect = 0;
    userType = Student;
    username = clinhart;
}]

主に saveall/saveallinbackground 関数がどのように機能するかについて、解析 API について詳しい知識を持っている人がいるかどうかはわかりません。

4

1 に答える 1

0

すべてをバックグラウンドでユーザーとして保存するには、最初に PFUser 変数を作成します。

var NewUser = PFUser.currentUser

次に、バックグラウンドで保存します

newUser.saveInBackgroundWithBlock {
(success:Bool, error: NSError!) -> Void in {
}

次に、成功したときに必要なことを行うために、これらの括弧内に if ステートメントなどを入れることができます。お気に入り:

if(success) {
performSegueWithIdentifier("YourSegue", sender: nil)
}
于 2015-04-09T16:46:07.850 に答える