从Parse Cloud更新解析本地存储中的固定PFObject

时间:2015-01-27 11:07:34

标签: ios xcode swift parse-platform

通过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会自动更新任何已固定的找到的对象吗?我很困惑。

谢谢!

1 个答案:

答案 0 :(得分:3)

我发现findObjectsInBackgroundfetchAllInBackground都会更新与objectId匹配的固定对象。

也就是说,当您最初创建一个对象时,它不会有objectId,但您仍然可以固定此对象而不会成功保存它。但是,在成功将其保存到云端之前,您无法findfetch。因此,在代码中,您必须将这些特定的PFObjects解压缩并以其他方式更新它们,或者根本不更新它们。