我正在进行自定义迁移,因为轻量级迁移不允许我在迁移时弄乱每个实体(我需要这样做)。但是,我仍在推断一种映射模型。
NSMappingModel *mappingModel = [NSMappingModel inferredMappingModelForSourceModel:sourceModel destinationModel:destinationModel error:&error];
然后,我将自定义迁移策略添加到每个实体映射:
NSArray * newEntityMappings = [NSArray arrayWithArray:mappingModel.entityMappings];
for (NSEntityMapping * entityMapping in newEntityMappings) {
entityMapping.entityMigrationPolicyClassName = NSStringFromClass([MyCustomEntityMigrationPolicy class]);
}
mappingModel.entityMappings = newEntityMappings;
现在,在iOS 4.0,4.1,4.2和4.3中,这个工作正常,对于每个实体,当调用MyCustomEntityMigrationPolicy的createDestinationInstancesForSourceInstance:entityMapping:manager:error:
方法时,我有机会更改其属性值。
但是,在iOS 5.0和5.1中,没有实例化MyCustomEntityMigrationPolicy的实例。
这是iOS 5中的错误还是我做错了什么?