使用coredata准备app发布

时间:2012-03-28 14:20:08

标签: iphone objective-c ios core-data core-data-migration

我即将结束创建我的新项目的1.0版本。我第一次使用coredata。

应用程序仅使用1个模型,所有数据都将由用户提供(因此我不会使用该应用程序加载任何数据)。

当然我已经在不同分支上处理应用程序的更新,并在将来看到数据模型中的一些变化。模型的变化只包括:

  • 添加实体
  • 向现有实体添加属性
  • 实体彼此之间没有任何关系。

我已阅读:iPhone app with CoreData 从那里我继续:Lightweight Migration,在那里我读到coredatas能够自动更新其模型,如果变化很小(如果我正确读取我的更改包含在那里)。

在apple migration doc中,我找到了自动迁移的代码:

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 个答案:

答案 0 :(得分:1)

  1. 我在方法

    中有这个代码

    - (NSPersistentStoreCoordinator *)persistentStoreCoordinator

  2. 应该已经存在类似

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

    如果你让Xcode创建核心数据方法。

    1. 此代码仅在引入新模型的更新中有必要。

    2. 据我所知,没有。这就是全部。