我需要使用从Web服务器下载的外国ID来关联实体。我有一个事件 - 类别(一个事件有类别,一个类别有很多事件)。用于获取所有类别的Web服务,以及用于获取所有事件的第二个Web服务。
这是网络服务返回的json:
类:
[
{ "id" : "1",
"name" : "music",
},
{ "id" : "2",
"name" : "sports",
},
{ "id" : "3",
"name" : "meetup"
}
]
事件:
[
{ "category_id" : "1",
"description" : "free concert",
"id" : "7791"
},
{ "category_id" : "2",
"description" : "Running event",
"id" : "8357"
}
]
我正在我的Events实体上保存category_id(两个实体的RestKit映射工作正常)。
现在,要显示事件的类别,我需要使用category_id并对核心数据执行获取请求,而不是使用getter(event.category.categoryID)。
有没有办法在执行事件的GET后配置RestKit(和/或CoreData)来关联这两个实体?我正在使用RestKit 0.20.3。
答案 0 :(得分:0)
我的不好,我没有仔细阅读文档。这是如何做到的(基于this stackoverflow的答案):
NSEntityDescription *eventEntity = [NSEntityDescription entityForName:NSStringFromClass([Event class]) inManagedObjectContext:store.mainQueueManagedObjectContext];
NSRelationshipDescription *categoryRelationship = [eventEntity relationshipsByName][@"category"];
RKConnectionDescription *connection = [[RKConnectionDescription alloc] initWithRelationship:categoryRelationship attributes:@{ @"categoryID": @"categoryID" }];
//entity mapping is the event's mapping like: RKEntityMapping *entityMapping = [RKEntityMapping mappingForEntityForName...
[entityMapping addConnection:connection];
必须在核心数据中正确配置关系“类别”。
对我来说就是这个伎俩。