別のクラスへのポインターである多くの includeKeys を含むクエリがあります。解析クラウドからデータを受け取った後、pinAllメソッドを使用してすべてのレコードがローカルに保存されます。保存された結果を取得すると、レコードは取得できますが、ポインターは含まれません。以下のサンプルコードを参照してください
[query includeKey:@"classOne.innerClass"];
[query includeKey:@"classTwo.innerClass"];
[query includeKey:@"classThree"];
[query includeKey:@"classFour"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error){
[PFObject pinAllInBackground:objects withName:@"LocalRecords" block:^(BOOL succeeded, NSError *error) {
}];
}];
そして、私は次のようなレコードを取得しています
PFQuery *lquery = [PFQuery queryWithClassName:[ClassName parseClassName]];
[lquery fromPinWithName:@"LocalRecords"];
BFTask *btask = [[lquery findObjectsInBackground] continueWithSuccessBlock:^id(BFTask *task) {
if (task.error) {
NSLog(@"Error: %@", task.error);
return task;
}
}];
classOne、classTwo、classThree、classFour のいずれかの列にアクセスしようとすると、キャッチされない例外 'NSInternalInconsistencyException' が原因でアプリを終了しています。理由: 'Key "name" has no data. 値を取得する前に fetchIfNeeded を呼び出してください。