电路板的另一个RestKit映射问题:
本地我有Core Data对象Group和Message;一个组有许多消息,一个消息可以有许多组被发送到。我需要将消息与组(组)的关系映射到只发送到的组ID(id_number)的JSON数组(group_ids)。基本上我需要我的请求JSON看起来像这样:
{
message:{
... // Other message data
group_ids:[
1208,
93,
...
]
...
}
}
我提出的那些自然不起作用的壁橱是:
RKObjectMapping *messageMapping = [RKObjectMapping requestMapping];
[messageMapping addAttributesFromDictionary:@{ @"body":@"body" }];
RKObjectMapping *groupIdMapping = [RKObjectMapping requestMapping];
[groupIdMapping addPropertyMapping:[RKAttributeMappingFromKeyPath:@"id_number" toKeyPath:nil];
[messageMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"groups" toKeyPath:@"group_ids" withMapping:groupIdMapping];
不幸的是,这会在日志中产生结果:
Mapped relationship object from keyPath 'groups' to 'group_ids'. Value: (
{
1208 = {};
}
)
这对我来说有点意义,但我不知道如何解决这个映射。我希望这是一个简单的解决方案,我还没有遇到过。非常感谢任何帮助。
答案 0 :(得分:0)
为了它的价值,我通过不为这个特定情况创建映射来实现这一点,而只是构建带有所需消息数据的参数字典以传递给[RKObjectManager postObject:path:parameters:success:failure]
按照我们的API工作,但我如果可能的话,仍然对如何完成所描述的映射感兴趣。
答案 1 :(得分:0)
尝试:
[messageMapping addAttributesFromDictionary:@{ @"body":@"body", @"groups.id_number":@"group_ids" }];
如果关系内容值为什么,应该使用keypath功能创建数组。