Я не могу получить локальные данные (закрепленные объекты) после повторного открытия приложения.Не удается получить локальные данные (закрепленные объекты) из Parse Local Datastore
У меня есть этот код в мой контроллер:
- (IBAction)btnAddTouched:(id)sender
{
PFObject *object = [PFObject objectWithClassName:@"Foobar"];
[object setValue:[[NSDate date] description] forKey:@"data"];
[object pinInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (succeeded) {
NSLog(@"Pinned OK");
}else{
NSLog(@"Erro: %@", error.localizedDescription);
}
}];
}
- (IBAction)btnLoadTouched:(id)sender
{
PFQuery *query = [PFQuery queryWithClassName:@"Foobar"];
[query fromLocalDatastore];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
NSLog(@"%@", objects);
}else{
NSLog(@"Erro: %@", error.localizedDescription);
}
}];
}
Шаги для воспроизведения:
- Pin некоторые объекты с
btnAddTouched:
; - Закройте приложение (остановка дебонирования);
- Откройте приложение снова (постройте снова);
- Попробуйте загрузить данные с привязкой
btnLoadTouched
;
Это извлечение мне объект с localId: (null)
:
"<Foobar: 0x15d42770, objectId: new, localId: (null)> {\n data = \"2014-12-15 21:00:05 +0000\";\n}"
)
И после того, что pinInBackgroundWithBlock:
больше не будет работать. Тогда блоки никогда не называются.
Просто мысль, но если вы создаете PFObject локально и никогда не сохраняете ее в облаке, объектId никогда не будет установлен, что вы видите здесь. Кажется элементарным, если я не вижу чего-то очевидного. –