Замена файла Core Data SQLite в приложении - PullRequest
3 голосов
/ 08 октября 2009

Я создаю файл SQLite на Mac с помощью Core Data, а затем помещаю его в приложение для iPhone ( проект GitHub , если интересно). Я хочу выпустить обновление приложения с обновленным файлом SQLite. В модели будут те же сущности и атрибуты, просто будет больше данных.

Я запускаю приложение в симуляторе со старым файлом sqlite. Выход. Замените файл sqlite новым в xcode. Добавьте NSMigratePersistentStoresAutomaticsOption и NSInferMappingModelAutomaticsOption в параметры addPeristentStore. Затем снова запустите приложение, но приложение показывает только те же данные из исходного файла.

Я также пытался создать версию этой модели в соответствии с документацией Apple и этим ТАК сообщением и переименовать файл sqlite. Но все равно не повезло (наверное, потому что модель все та же?).

Любые идеи о том, как я могу заставить приложение читать новый файл sqlite?

1 Ответ

3 голосов
/ 24 октября 2009

В приложении «Мои основные данные» для iPhone используется стандартный код, предоставленный при создании проекта и выборе «Использовать основные данные для хранения».
Он переключит базу данных SQLite, которая используется, когда я изменю значение константы моего имени файла «DB_NAME» и перестрою:

NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent:DB_NAME]];

NSError *error = nil;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...