我有一个Person类(拥有firstName和lastName属性)和另一个实体Worker(拥有wage和title属性)。在我的Core Data模型中,Person实体被设置为Worker实体的父实体。在我的AppDelegate中,我设置了我的映射...
RKManagedObjectMapping* personMapping = [RKManagedObjectMapping mappingForEntityWithName:@"Person" inManagedObjectStore:objectManager.objectStore];
[personMapping mapKeyPath:@"firstName" toAttribute:@"firstName"];
[personMapping mapKeyPath:@"lastName" toAttribute:@"lastName"];
[objectManager.mappingProvider addObjectMapping:personMapping];
RKManagedObjectMapping* workerMapping = [RKManagedObjectMapping mappingForEntityWithName:@"Worker" inManagedObjectStore:objectManager.objectStore];
[workerMapping mapKeyPath:@"wage" toAttribute:@"wage"];
[workerMapping mapKeyPath:@"title" toAttribute:@"title"];
[objectManager.mappingProvider setMapping:workerMapping forKeyPath:@"workers"];
RKManagedObjectSeeder* seeder = [RKManagedObjectSeeder objectSeederWithObjectManager:objectManager];
[seeder seedObjectsFromFiles:@"people.json", nil];
...在people.json文件中...
{
"workers":
[
{
"firstName":"Rob",
"lastName":"Johnson"
},
{
"firstName":"John",
"lastName":"Roberts"
}
]
}
现在当我运行这个程序时,没有任何对象被创建。如何表达Worker类具有与Person相同的映射关系?我可以将它们添加到该映射中,但感觉不太对。
另外,在注册Person映射时使用...
[objectManager.mappingProvider addObjectMapping:personMapping];
我不使用RKManagedObjectMapping方法的setMapping:forKeyPath:,因为在此应用程序中我们永远不会仅处理一个人(Person),因此也不会进行映射。但我仍希望它能够为Person的子实体注册。