2015-05-21 34 views
1

如何在单个查询中更新多个对象进行分析?使用Parse更新多个对象?

以下代码仅适用于单个条目。

我该如何去更新从数组中获取的多个值?

var query = PFQuery(className:"GameScore") 
query.getObjectInBackgroundWithId("xWMyZEGZ") { 
(gameScore: PFObject?, error: NSError?) -> Void in 
    if error != nil { 
    println(error) 
    } else if let gameScore = gameScore { 
    gameScore["cheatMode"] = true 
    gameScore["score"] = 1338 
    gameScore.saveInBackground() 
} 
} 
+1

@eric感谢编辑:) – Mugs

回答

5

可以使用​​的方式来保存一批对象的一次,而无需调用保存在他们每个人的独立。基本上,你把你想要保存的所有对象放到一个数组中,然后调用[PFObject saveAll:yourArray](只是一个例子,你也可以使用saveAllInBackground:)。

下面是Objective-C中的一些示例代码,我对Swift不太好,但是你可以很容易地翻译它。

PFQuery *query = [PFQuery queryWithClassName:@"GameScore"]; 
[query findInBackgroundWithBlock:^(NSArray *results, NSError *error) { 
    NSMutableArray *saveAllOfMe = [NSMutableArray new]; 
    for (PFObject *object in results) { 
     object[@"cheatMode"] = @(YES); 
     object[@"score"] = @(1234); 
     [saveAllOfMe addObject:object]; 
    } 
    [PFObject saveAllInBackground:saveAllOfMe block:^(BOOL success, NSError *error) { 
     // Check result of the operation, all objects should have been saved by now 
    }]; 
}]; 

https://www.parse.com/docs/ios/api/Classes/PFObject.html#//api/name/saveAllInBackground:block

+0

感谢。你能用上面的例子帮我解决一些示例代码: – Mugs

+0

我添加了一个应该工作的简短示例。我从头顶写下它,并不会编译它,所以它可能需要一些调整:) –

+0

欣赏它。谢谢 – Mugs