RestKit RKDynamicObjectMapping 仅适用于第一个 JSON 结果 [英] RestKit RKDynamicObjectMapping work only for first JSON result
问题描述
我遇到了 RKDynamicObjectMapping
的问题,但它可能是我滥用它.
i got into an issue with RKDynamicObjectMapping
, however it could be
that i misuse it.
我有以下场景
- 请求服务获取区域
- 选择区域
- 请求服务获取所选区域的期刊
两个调用返回的数据看起来像这样
data returned by both calls looks like that
{ d: [{cutID:""}, {cutID:""}, {cutID:""}] }
{ d: [{journalID:""}, {journalID:""}, {journalID:""}] }
我有以下代码
RKObjectMapping* cutMapping = [RKObjectMapping mappingForClass:[Cut
class]];
[cutMapping mapKeyPath:@"CutID" toAttribute:@"cutID"];
RKObjectMapping* journalMapping = [RKObjectMapping mappingForClass:
[Journal class]];
[journalMapping mapKeyPath:@"journalID" toAttribute:@"journalID"];
RKDynamicObjectMapping * dynamicMapping = [RKDynamicObjectMapping
dynamicMapping];
[dynamicMapping setObjectMapping:journalMapping
whenValueOfKeyPath:@"__metadata.type" isEqualTo:@"JournalDetails"];
[dynamicMapping setObjectMapping:cutMapping
whenValueOfKeyPath:@"__metadata.type" isEqualTo:@"Cut"];
[[[RKObjectManager sharedManager] mappingProvider]
setMapping:dynamicMapping forKeyPath:@"d"];
....
[objectManager loadObjectsAtResourcePath:getResourcePath
delegate:self];
....
以后
[objectManager loadObjectsAtResourcePath:getResourcePath
delegate:obj];
返回 Cut
对象的第一个请求的结果被完美地映射,但对于返回 Journal
对象的第二个请求的结果则没有.登录 request:didLoadResponse
显示服务返回预期的 json ,所以问题在于映射如何使它与两个映射一起工作?
results of first request, which returns Cut
objects, is mapped flawlessly, but not for second which returns Journal
objects.
logging in request:didLoadResponse
showed that service returns
expected json , so the issue is with mappings
how to make it work with two mappings ?
有人在使用 RestKit 动态映射吗?
Anyone using RestKit Dynamic Mapping yet ?
推荐答案
我想您已经检查过您的 Cut 对象在CoreData 实体?
I presume you've checked that your Cut object is mapping to a to-many relationship in the CoreData entity?
如果可以,您可以打开 RESTKit 日志记录并发布结果
If so can you turn on the RESTKit logging and post the results
这篇关于RestKit RKDynamicObjectMapping 仅适用于第一个 JSON 结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!