Swift iOS应用程序未保存所有对象解析



我的问题是在用户的数组字段中添加新的数字。所有的代码似乎都能工作,但我的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)
                }
            }
      }
    }

下面的内容存储在println(objectQuery)中,因为您可以看到taskID已经被附加,tasksCompleted包含字符串。这让我相信saveallbackground函数存在问题。

[<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;
}]

不确定是否有人对解析api有更多的了解,主要是saveall/saveallbackground函数的工作原理。

要将所有内容作为用户保存在后台,我会首先创建一个PFUser变量,如

var NewUser = PFUser.currentUser

然后保存在后台

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

然后,你可以把if语句和其他东西放在这些括号里,以便在成功时做你需要做的事情。类似:

if(success) {
performSegueWithIdentifier("YourSegue", sender: nil)
}

最新更新