Новая и старая модель CoreData

Я хочу создать новую версию приложения (созданного другими) с использованием новой модели CoraData. Я сомневаюсь: основная модель данных неизменна благодаря обновлениям. Я хочу быть уверен, что предыдущая модель CoreData не создаст проблем с новой версией приложения.

Должен ли я следовать некоторым рекомендациям?


person MatterGoal    schedule 17.06.2012    source источник


Ответы (1)


Неясно, хотите ли вы сохранить старые данные приложения и выполнить миграцию или нет.

Если нет, то при публикации новой модели, когда базовые данные увидят, что модель отличается от старой, вы можете стереть хранилище следующим методом: [[NSFileManager defaultManager] removeItemAtURL:storeURL error:nil];

Затем воссоздайте свой магазин:

[__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error];

Вы будете уведомлены о том, что магазин не соответствует

/**
 Returns the persistent store coordinator for the application.
 If the coordinator doesn't already exist, it is created and the application's store added to it.
 */
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator

метод, вы обычно найдете его в файле appDelegate.

в основном у вас есть два варианта: создать новый магазин в соответствии с вашей новой моделью (старые данные исчезнут) или перенести вашу старую модель на новую (возможно ли это в соответствии с тем, что вы собираетесь делать?)

Если приложение принципиально отличается, вы можете рассмотреть возможность публикации «нового приложения», а не новой версии. Затем вам нужно перенаправить пользователей в новое приложение, например, с сообщением в старом приложении. В основном это тот случай, когда вы хотите, чтобы старые пользователи сохраняли свое приложение «как есть», потому что оно соответствует старой версии iOS, и публиковали совершенно новое приложение с использованием совершенно новых функций, стандартов и пользовательского интерфейса iOS.

person moxy    schedule 17.06.2012
comment
Проталкивание нового приложения не является решением, я потеряю всех пользователей приложения, я ошибаюсь? Когда вы говорите, когда данные ядра увидят, что модель отличается от старой, вы можете стереть хранилище... Как я буду предупрежден о том, что приложение найдет другую модель? - person MatterGoal; 18.06.2012