迁移和iCloud
如果你使用iCloud,则只能使用自动轻量级迁移来迁移储存的内容。要迁移位于iCloud中的持久储存,使用addPersistentStoreWithType:configuration:URL:options:error:并在选项字典中至少传递一下选项,将该储存添加到持久储存协调器:
NSDictionary *optionsDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption,
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
<#Ubiquitous content name#>, NSPersistentStoreUbiquitousContentNameKey, nil];
一个储存的变化都被记录和保存在每一个独立的模型版本,是与一个给定的NSPersistentStoreUbiquitousContentNameKey有关。如果模型版本匹配,则使只能用给定的NSpersistentStoreUbiquitousContentNameKey配置的持久储存,与另一设备上的存储进行同步。
如果将配置有NSPersistentStoreUbiquitousContentNameKey选项的持久存储迁移到新的模型版本,则存储对当前设备的更改的历史记录也将被迁移,然后与该新模型版本配置的任何其他设备合并。 使用新版本储存的任何更改也会被合并。但是,如果使用自定义映射模型执行迁移,则现有更改不能迁移到新的模型版本。