2012-03-28 2 views
3

Я прихожу к концу с созданием версии 1.0 моего нового проекта. в первый раз я использую coredata.Подготовка к выпуску приложения с coredata

приложение использует только 1 модель, все данные будут предоставлены пользователем (поэтому я не загружаю данные с приложением).

, конечно, я уже работаю над обновлениями для приложений на разных ветках и вижу некоторые изменения в datamodel в будущем. изменения на модели будут состоять только из:

  • добавления субъектов
  • добавления атрибутов существующих объектов
  • субъектов не имеет никакого отношения друг с другом.

я прочитал: iPhone app with CoreData оттуда я продолжал: Lightweight Migration, где я прочитал о coredatas возможности обновлять свою модель автоматически, если изменения незначительны (если я правильно читать мои изменения включены там).

миграционной яблоко документ я нашел код для автоматической миграции:

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. 
} 

моих вопросов являются следующим:

  • где бы я поставил этот код? я нашел дополнительную информацию об этом
  • Я полагаю, что этот код будет необходим только в обновленной версии приложения?
  • Мне нужны какие-либо другие препараты в моем приложении версии 1.0, чтобы разрешить более поздние мотивы & обновления для coredata, или мне не нужно об этом думать в первом выпуске?

ответ

1
  1. У меня есть этот код в методе

    - (NSPersistentStoreCoordinator *) persistentStoreCoordinator

Там уже должен быть код, как

if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) 

если вы впустили Xcode создает основные методы данных.

  1. Этот код необходим только в обновлении, которое представляет новую модель.

  2. Насколько я знаю, нет. Это все.

+0

, и если вы добавите новую модель, yon предоставит только другой идентификатор версии и оставит старую в приложении, и все будет сделано само по себе? –

+0

, и если я добавлю атрибут существующей сущности - если обновлено значение по умолчанию, будут ли все «старые» объекты в контексте обновляться с новым значением по умолчанию? –

+0

Добавьте новую модель, выбрав существующую модель, а затем выберите «Редактор»> «Добавить версию модели ...».Для значения по умолчанию: я предполагаю, что это так, но я не знаю. – dasdom

Смежные вопросы