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

时间:2012-01-02 10:56:26

标签: 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"
               }
            },
         },
...

我正试图通过以下方式进行映射:

[personMapping mapKeyPath:@"contacts.address" toRelationship:@"address" withMapping:addressMapping];

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

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

非常感谢!

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

{
    contacts = "";
    name = myName;
    id = 1;
    ...
}

1 个答案:

答案 0 :(得分:0)

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