Swift iOS应用程序未保存所有对象解析
我的问题是在用户的数组字段中添加新的数字。所有的代码似乎都能工作,但我有saveAll函数的问题。所有的名字都是正确的,正如我在几个不同的场合检查过的那样Swift iOS应用程序未保存所有对象解析,swift,parse-platform,pfquery,pfobject,pfuser,Swift,Parse Platform,Pfquery,Pfobject,Pfuser,我的问题是在用户的数组字段中添加新的数字。所有的代码似乎都能工作,但我有saveAll函数的问题。所有的名字都是正确的,正如我在几个不同的场合检查过的那样 func taskAllocation(){ var query = PFUser.query() var objectQuery:[PFUser] = [PFUser]() query.whereKey("Year", equalTo: yearTextField.text.toInt())
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)
}
}
}
}
以下内容存储在printlnobjectQuery中,因为您可以看到TaskID已附加,tasksCompleted包含字符串。这让我相信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;
}]
不确定是否有人对parse api有更多的了解,主要是saveall/saveallinbackground函数的工作原理。要将所有内容作为用户保存在后台,我首先创建一个PFUser变量,如
var NewUser = PFUser.currentUser
然后保存在后台
newUser.saveInBackgroundWithBlock {
(success:Bool, error: NSError!) -> Void in {
}
然后,您可以将if语句和内容放在这些括号内,以便在成功时执行所需的操作。比如:
if(success) {
performSegueWithIdentifier("YourSegue", sender: nil)
}
这不是针对currentUser,而是针对与查询匹配的所有用户。因为当前用户将是管理员,向与此结果匹配的用户添加新的tasksID