12

別のクラスへのポインターである多くの 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 を呼び出してください。

4

1 に答える 1