ネットワーク接続なしで保存しようとすると、PFObject
ローカルに正常に保存され、ネットワーク接続でアプリを再起動するたびに、オブジェクトがサーバーに保存されるように見えますが、すべてのパラメーターが空です。
次の手順を実行しています。まずPFObject
、異なる値で を作成し、 を呼び出しますsaveEventually
。これらの手順の間、インターネットに接続していない (機内モードがオンになっている) ため、サーバーに保存できず、ローカルに保存されました。
PFObject *contact = [PFObject objectWithClassName:@"Contact"];
[contact setObject:[PFUser currentUser] forKey:kRelatedToUserKey];
[contact setObject:self.firstname forKey:kFirstnameKey];
[contact setObject:self.lastname forKey:kLastnameKey];
[contact saveEventually];
今、私はアプリを閉じて、もう一度起動しています。そのように連絡先を読み込んでいます。名、姓などのすべての正しい値を含む正しいオブジェクトを取得しています。
PFQuery *postQuery = [PFQuery queryWithClassName:@"Contact"];
[postQuery whereKey:@"related_to_user" equalTo:[PFUser currentUser]];
[postQuery fromLocalDatastore];
[postQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
// here I get back the correct object from local storage, with all values
}
}];
機内モードをオフにすると、オブジェクトをサーバーに保存しようとしますが、バックエンドで確認できるのは、値のない objectId だけです。
一方、ローカルに保存されたオブジェクトにはすべて正しい値があります。