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

swa*_*ner 5 objective-c ios restkit

我有一个JSON结构

{
   "objects":{
      "person":[
         {
            "id":"1",
            "name":"my name"
            "contacts":{
               "address":{
                  "id":"1",
                  "street":"mystreet",
                  "country":"mycountry"
               },
               "email":{
                  "id":"1",
                  "emailAddress":"hello@hello.com"
               }
            },
         },
...
Run Code Online (Sandbox Code Playgroud)

我试图通过以下方式映射它:

[personMapping mapKeyPath:@"contacts.address" toRelationship:@"address" withMapping:addressMapping];
Run Code Online (Sandbox Code Playgroud)

只要联系人存在,这种方法就可以正常工作.但是如果没有地址/电子邮件,则不会发送此元素,这会导致例外RKMappingOperation#applyRelationshipMappings:value = [self.sourceObject valueForKeyPath:relationshipMapping.sourceKeyPath];

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

非常感谢!

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

{
    contacts = "";
    name = myName;
    id = 1;
    ...
}
Run Code Online (Sandbox Code Playgroud)

Fno*_*d23 0

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