Objective c RestKit:如何定义可选(嵌套)关键路径

Objective c RestKit:如何定义可选(嵌套)关键路径,objective-c,ios,restkit,Objective C,Ios,Restkit,我有一个JSON结构,比如 { "objects":{ "person":[ { "id":"1", "name":"my name" "contacts":{ "address":{ "id":"1", "street":"mystreet", "co

我有一个JSON结构,比如

{
   "objects":{
      "person":[
         {
            "id":"1",
            "name":"my name"
            "contacts":{
               "address":{
                  "id":"1",
                  "street":"mystreet",
                  "country":"mycountry"
               },
               "email":{
                  "id":"1",
                  "emailAddress":"hello@hello.com"
               }
            },
         },
...
我试着用下面的方法绘制它:

[personMapping mapKeyPath:@"contacts.address" toRelationship:@"address" withMapping:addressMapping];
只要存在联系人,此功能就可以正常工作。但如果没有地址/电子邮件,则不会发送此元素,这会导致
RKMappingOperation#applyRelationshipMappings
:value=[self.sourceObject valueForKeyPath:relationshipMapping.sourceKeyPath]中出现异常

现在,我的解决方法是使用
@try…@catch
,但我希望有更好的解决方案

非常感谢

编辑:如果根本没有发送联系人,则会发生异常;然后,JKDictionary看起来像这样(同样在
RKMappingOperation#applyRelationshipMappings
中):


也许在实例化对象时应该正确初始化它们?也许一开始你所有的财产都是零;然后,当你继续填写属性;在提交(或映射或其他)之前,请检查属性值的数据完整性。

引发的异常是什么?另外,您使用哪个RestKit版本?@mja:version 0.9.3,例外情况是
[valueForUndefinedKey:]:该类不符合密钥地址的键值编码。
我在一个基于RestKit的项目中尝试了类似的情况,我没有得到任何例外。不过,我使用的是git master branch的最新RestKit。请尝试以下操作(检查是否出现相同的异常):将关系映射添加到不存在的键,例如“contacts.where”(保持所有映射不变),并解析包含地址和电子邮件的JSON。@mja感谢您的评论;请看我的编辑。。。我认为我们走的很好:)我建议你试试最新的git/master分支。
{
    contacts = "";
    name = myName;
    id = 1;
    ...
}