Указатели данные не хранятся в локальной базе данных parse ios
У меня есть запрос со многими 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", причина: "Имя ключа" не содержит данных. Вызовите fetchIfNeeded до получения его значения.'
1 ответ
Это была ошибка в функциональности локального хранилища данных Parse.com для iOS.
Из примечаний к выпуску 1.6.3:
"Улучшена согласованность запросов Local Datastore / Parse со значениями includeKey: и NSNull".