通过object.saveEventually()
,我将能够将本地存储中的数据与Parse中的云同步。
但这是我感到困惑的,在文档中,它声明:
当一个对象被固定时,每次通过提取或更新它 保存新数据后,将更新本地数据存储区中的副本 自动
然后,下一个示例,几段之后,取消所有对象,然后通过固定名为HighScores
的新scores
数组来更新HighScores
PFQuery *query = [PFQuery queryWithClassName:@"GameScore"];
[query orderByDescending:@"score"];
// Query for new results from the network
[[query findObjectsInBackground] continueWithSuccessBlock:^id(BFTask *task) {
return [[PFObject unpinAllObjectsInBackgroundWithName:@"HighScores"] continueWithSuccessBlock:^id(BFTask *ignored) {
// Cache the new results.
NSArray *scores = task.result;
return [PFObject pinAllInBackground:scores withName:@"HighScores"];
}];
}];
因此,我应该取消固定HighScores
的所有对象,以更新HighScores
中的现有分数吗?
findObjectsInBackground
会自动更新任何已固定的找到的对象吗?我很困惑。
谢谢!
答案 0 :(得分:3)
我发现findObjectsInBackground
和fetchAllInBackground
都会更新与objectId
匹配的固定对象。
也就是说,当您最初创建一个对象时,它不会有objectId
,但您仍然可以固定此对象而不会成功保存它。但是,在成功将其保存到云端之前,您无法find
或fetch
。因此,在代码中,您必须将这些特定的PFObjects
解压缩并以其他方式更新它们,或者根本不更新它们。