Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用TransformationPolicy迁移CoreData中的关系?_Ios_Core Data_Ios7_Data Migration - Fatal编程技术网

Ios 如何使用TransformationPolicy迁移CoreData中的关系?

Ios 如何使用TransformationPolicy迁移CoreData中的关系?,ios,core-data,ios7,data-migration,Ios,Core Data,Ios7,Data Migration,我需要将我的FTRecord模型分解为两个FTRecord和FTEvent模型。因此,我不能只使用轻量级迁移,而需要使用成熟的映射 1) 首先,我添加了一个模型版本2,并相应地调整了模式,添加了一个新的连接关系。 FTRecord one-to-many-->FTEvent和FTEvent one-to-one-->FTRecord 2) 我添加了一个映射类,并将其指向我的自定义策略类(见下文)。 3) 在FTEventTransformationPolicy:NSEntityMigrati

我需要将我的
FTRecord
模型分解为两个
FTRecord
FTEvent
模型。因此,我不能只使用轻量级迁移,而需要使用成熟的映射

1) 首先,我添加了一个
模型版本2
,并相应地调整了模式,添加了一个新的连接关系。
FTRecord one-to-many-->FTEvent
FTEvent one-to-one-->FTRecord

2) 我添加了一个映射类,并将其指向我的自定义策略类(见下文)。

3) 在
FTEventTransformationPolicy:NSEntityMigrationPolicy
中,我定义了创建UUID作为密钥的函数

@interface FTEventTransformationPolicy : NSEntityMigrationPolicy

- (NSString*)createId;

@end

@implementation FTEventTransformationPolicy

-(NSString *)createId
{
    return [[NSUUID UUID] UUIDString];
}

@end
4) 前一个
FTRecord
的其余属性绑定到
FTEvent
(这里不显示)。现在真正复杂的是

- (BOOL)createDestinationInstancesForSourceInstance:(NSManagedObject *)sInstance entityMapping:(NSEntityMapping *)mapping manager:
我在这里迷路了。如何为每个
旧FTRecord
创建
FTEvent
的实例,并将该实例添加到
新FTRecord
事件中