Добавление атрибута в базу данных, которая добавляется в модель данных в iPhone - PullRequest
1 голос
/ 28 марта 2012

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

Ответы [ 4 ]

3 голосов
/ 28 марта 2012

После смены модели вы должны удалить свое приложение на устройстве / симуляторе и переустановить.Это потому, что ваша существующая база данных SQLite больше не соответствует измененной модели.

1 голос
/ 28 марта 2012

Если вы все еще разрабатываете приложение, самый простой ответ - просто удалить и переустановить его.

Если вы действительно хотите сохранить содержимое базы данных, Core Data может автоматически перейти содна версия вашей схемы в другую (с некоторыми оговорками). Подробнее см. В документации .

0 голосов
/ 28 марта 2012

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

Вы можете создать новую версию модели, перейдя по адресу: Editor -> Add Model version....После этого включите автоматическую миграцию в persistentStoreCoordinator метод вашего делегата приложения:

NSError *error = nil;
NSURL *storeURL = <#The URL of a persistent store#>;
NSPersistentStoreCoordinator *psc = <#The coordinator#>;
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
    [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
    [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];

BOOL success = [psc addPersistentStoreWithType:<#Store type#>
                    configuration:<#Configuration or nil#> URL:storeURL
                    options:options error:&error];
if (!success) {
    // Handle the error.
}
0 голосов
/ 28 марта 2012

Вы должны заставить приложение очистить все цели, а затем создать, а также удалить приложение из симулятора, а затем собрать приложение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...