我试图弄清楚如何使用RestKitAPI
将响应映射到 CoreData 对象。使用JSOG标准。这是一个例子:API
[
{
"@id": "1",
"name": "Sally",
"friend": {
"@id": "2",
"name": "Bob",
"friend": {
"@id": "3",
"name": "Fred",
"friend": { "@ref": "1" }
}
}
},
{ "@ref": "2" },
{ "@ref": "3" }
]
我将如何创建一个RKEntityMapping
这样的JSON
?简单属性的映射是微不足道的,问题是如何在此处设置关系,以便它们与@ref
,当顶级用户对象包含@ref
唯一时。
RKEntityMapping *userMapping = [RKEntityMapping mappingForEntityForName:@"Question"
inManagedObjectStore:[RKObjectManager sharedManager].managedObjectStore];
[userMapping addAttributeMappingsFromDictionary:@
{
@"@id" : @"identifier",
@"name" : @"name"
}];
[userMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"friend"
toKeyPath:@"friend"
withMapping:userMapping]];
我的猜测是我可以使用下面的代码来处理@ref
对象的内部:
[userMapping addConnectionForRelationship:@"friend" connectedBy:@{@"@ref": @"@id"}];
但它是正确的吗?
- 如何将完整对象或仅对已提供对象(通过
@ref
)的引用映射到实际的 Core Data 对象? - 如何将 JSON 的顶级元素(作为
User
对象列表)映射到实际的User
实体列表?