核心数据迁移 - 这是一个简单的迁移,应该如何完成?

时间:2011-10-28 23:32:12

标签: iphone ios ipad core-data data-migration

2 个答案:

答案 0 :(得分:1)

您需要创建托管对象模型包,并启用迁移。这实际上允许您加载多个数据库模型以检索相同类型的数据。然后,您可以告诉托管对象上下文复制所有内容。有关详细信息:http://www.timisted.net/blog/archive/core-data-migration/

答案 1 :(得分:0)

听起来我们的模型非常简单。如果您所做的只是向现有模型添加更多属性,则可以执行轻量级迁移。这意味着CoreData将为您执行迁移。

执行以下操作:
1.在Xcode中,单击您的模型。它应该具有.xcdatamodeld扩展名。 2.转到Editor-> Model Version并添加新模型,注意更改版本。 3.添加新属性。 4.确保将新属性添加到相关的托管对象子类。 5.在您的持久性商店协调员实施中,最有可能在您的应用程序委托中。确保添加选项NSMigratePersistentStoresAutomaticallyOption。您的代码应如下所示:

NSPersistentStoreCoordinator *psc=persistentStoreCoordinator;
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                              [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
                             [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption,nil];
    NSError *error=nil;
    if (![psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]) {
            // handle errors
    }

以下是Apple关于轻量级迁移的文档 http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/vmLightweight.html

祝你好运1