Восстановление аннотаций через Core-Data - PullRequest
1 голос
/ 22 июня 2011

В настоящее время у меня есть приложение, в котором пользователь нажимает на карту и добавляет точки аннотации с определенными субтитрами. Однако, когда телефон выключен, все их добавленные баллы исчезают. Я заинтересован в том, чтобы сделать эти аннотации постоянными. Я пытался понять, как это сделать с Core-Data, но после прочтения этого урока здесь: http://www.raywenderlich.com/934/core-data-tutorial-getting-started, Я немного растерялся, с чего начать.

Любая помощь будет оценена, спасибо.

1 Ответ

0 голосов
/ 22 июня 2011

Если у вас настроено базовое приложение для обработки данных, вам нужно будет только создать объект в файле xcdatamodel. Добавьте атрибуты для всего, что вы хотите сохранить.

latitude - double
longitude - double
title - NSString

и т.д.. пока не получишь то, что хочешь.

Если вы хотите добавить аннотацию, вы должны создать новый объект основных данных для вашей сущности. Это будет выглядеть примерно так

Location *newLocation = (Location *)[NSEntityDescription insertNewObjectForEntityForName:@"Location" inManagedObjectContext:self.managedObjectContext];
Location.latitude = ....
// and so on to store the information you want in its attributes;

Вы можете установить атрибуты в другой точке, если вы измените значения в более поздней точке. Вам просто нужно иметь доступ к нужному объекту, чтобы использовать аннотацию. Вы должны быть в состоянии сделать это, используя NSFetchRequest в вашем managedObjectContext. Вы можете использовать NSPredicate , чтобы отфильтровать объекты к тому, который вы хотите. Затем, когда вы будете готовы выйти из приложения, сохраните свой контекст, используя

NSError *error = nil;
if ([managedObjectContext save:&error]) {
    // handle the error;
}

, в котором будут храниться все объекты, которые вы добавили для использования при следующем открытии приложения. После этого вы сможете создавать свои аннотации на основе объектов в вашем managedObjectContext. Я надеюсь, что это то, что вы искали, или, по крайней мере, дает представление о том, как подойти к тому, что вы хотели бы сделать.

...