0

Parse localDatastore をテストしていますが、新しいサーバー PFQuery の後でローカル データストアを更新するのに苦労しています。

PFQuery は正常に動作し、配列をローカル データストアに正常に固定しているようです。サーバー上の配列の内容を変更すると、サーバー PFQuery は更新された配列を取得しますが、ローカル データストアは更新されないようです。

- (void)viewDidLoad {
[super viewDidLoad];

// Query Parse
PFQuery *query = [PFQuery queryWithClassName:@"contacts"];
NSArray *objects = [query findObjects];
[PFObject pinAllInBackground:objects block:^(BOOL succeeded, NSError *error) {
    if(succeeded) {
        NSLog(@"Successfully retrieved %lu records from Parse.", (unsigned long)objects.count);
    } else if (error) {
        NSLog(@"Error");
    }
}];
}

次に、UIButton を使用して、ローカル データストアの内容をコンソールに記録します。

-(IBAction)showDatastore {

// Query the Local Datastore
PFQuery *query = [PFQuery queryWithClassName:@"contacts"];
[query fromLocalDatastore];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error) {
        NSLog(@"Successfully retrieved %lu contacts from Datastore.", (unsigned long)objects.count);
    } else {
        // Log details of the failure
        NSLog(@"Error: %@ %@", error, [error userInfo]);
    }
}]; 
}

私のサンプルでは、​​元の配列には 15 個のオブジェクトがあります。各配列の最初のカウントは両方とも 15 です。その後、サーバー配列からオブジェクトを削除すると、最初の PFQuery カウントは 14 ですが、ローカル データストア カウントは 15 のままです。

パースのドキュメントには次のように記載されています。

オブジェクトが固定されると、新しいデータをフェッチまたは保存してオブジェクトを更新するたびに、ローカル データストア内のコピーが自動的に更新されます。

しかし、そうではないようです...少なくとも、この推奨コードではそうではありません。足りないものはありますか?

4

1 に答える 1