我正在开发我的第一个使用 RestKit 0.2 和 Core Data 的 iOS 应用程序。大多数时候我都遵循这个很棒的教程http://www.alexedge.co.uk/blog/2013/03/08/introduction-restkit-0-20/ 但是它不符合我的要求,因为它描述了嵌入式JSON 对象,我需要创建单独的对象。这是我的应用程序结构的简化方案:
JSON响应:
"application": [
{
"appId": "148",
"appName": …
.
.
.
(more attributes)
}
],
"image": [
{
"imgId": "308",
"appId": "148",
"iType": "screenshot",
"iPath": ..
.
.
.
},
{
"imgId": "307",
"appId": "148",
"iType": "logo",
"iPath": …
.
.
.
}
]
我创建了一个包含两个实体的数据模型,并以一个应用程序可能有多个图像而一个图像可能只属于一个应用程序的方式设置它们之间的关系:
我使用 mogenerator 创建由实体表示的类。
我可以使用以下代码成功地将实体映射到 Application 对象:
NSDictionary *parentObjectMapping = @{
@"appId" : @"appId"
};
// Map the Application object
RKEntityMapping *applicationMapping = [RKEntityMapping mappingForEntityForName:NSStringFromClass([Application class]) inManagedObjectStore:managedObjectStore];
applicationMapping.identificationAttributes = @[ @"appId" ];
[applicationMapping addAttributeMappingsFromDictionary:@{
@"appName" : @"name",
@"appCat" : @"category",
@"appType" : @"type",
@"compName" : @"companyName",
@"compWeb" : @"companyWebsite",
@"dLink" : @"downloadWebLink",
@"packageName" : @"appStoreLink",
@"osMinVer" : @"minRequirements",
@"appCost" : @"cost",
@"appDescription" : @"appDescription"
}];
[applicationMapping addAttributeMappingsFromDictionary:parentObjectMapping];
// Register our mappings with the provider
[manager addResponseDescriptorsFromArray:@[
[RKResponseDescriptor responseDescriptorWithMapping:applicationMapping
pathPattern:nil
keyPath:@"application"
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]
]];
现在我在将 JSON 映射到具有 Image 和 Application 之间适当关系的图像对象时遇到问题。如何添加两个实体之间的映射?我的数据模型是正确的还是我遗漏了什么?