RestKit: как определить необязательные (вложенные) ключевые пути - PullRequest
5 голосов
/ 02 января 2012

У меня есть 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: relationsMapping.sourceKeyPath];

Прямо сейчас, мой обходной путь должен использовать @try...@catch, но я надеюсь, что есть лучшее решение для этого ...

Большое спасибо!

РЕДАКТИРОВАТЬ : исключение происходит тогда, когда контакты вообще не отправляются; затем JKDictionary выглядит следующим образом (снова в RKMappingOperation#applyRelationshipMappings):

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

1 Ответ

0 голосов
/ 09 января 2012

Может быть, вам следует правильно инициализировать ваши объекты при их создании? Может быть, начать с нуля все ваши свойства; затем по мере заполнения заполняйте свойства; и перед тем как зафиксировать (или сопоставить или еще что-нибудь), проверьте целостность данных значений вашего свойства.

...