RestKit RKDynamicObjectMapping работает только для первого результата JSON

у меня возникла проблема с RKDynamicObjectMapping, однако, возможно, я неправильно его использую.

у меня следующий сценарий

  1. запрос в сервис для получения площадей
  2. выбрать район
  3. запросить в сервисе получение журналов по выбранной области

данные, возвращаемые обоими вызовами, выглядят так

{ d: [{cutID:""}, {cutID:""}, {cutID:""}] } 
{ d: [{journalID:""}, {journalID:""}, {journalID:""}] } 

у меня есть следующий код

RKObjectMapping* cutMapping = [RKObjectMapping mappingForClass:[Cut 
class]]; 
[cutMapping mapKeyPath:@"CutID" toAttribute:@"cutID"]; 
RKObjectMapping* journalMapping = [RKObjectMapping mappingForClass: 
[Journal class]]; 
[journalMapping mapKeyPath:@"journalID" toAttribute:@"journalID"]; 
RKDynamicObjectMapping * dynamicMapping  = [RKDynamicObjectMapping 
dynamicMapping]; 
[dynamicMapping setObjectMapping:journalMapping 
whenValueOfKeyPath:@"__metadata.type" isEqualTo:@"JournalDetails"]; 
[dynamicMapping setObjectMapping:cutMapping 
whenValueOfKeyPath:@"__metadata.type" isEqualTo:@"Cut"]; 
[[[RKObjectManager sharedManager] mappingProvider] 
setMapping:dynamicMapping forKeyPath:@"d"]; 

.... 

[objectManager loadObjectsAtResourcePath:getResourcePath 
delegate:self]; 

.... 

и позже

[objectManager loadObjectsAtResourcePath:getResourcePath 
delegate:obj]; 

результаты первого запроса, который возвращает Cut объектов, сопоставляются безупречно, но не для второго, который возвращает Journal объектов. вход в систему request:didLoadResponse показал, что служба возвращает ожидаемый json, поэтому проблема связана с сопоставлениями, как заставить ее работать с двумя сопоставлениями?

Кто-нибудь уже использует RestKit Dynamic Mapping?


person vittore    schedule 20.01.2012    source источник


Ответы (1)


Я полагаю, вы проверили, что ваш объект Cut сопоставляется с отношением ко многим в объекте CoreData?

Если это так, вы можете включить ведение журнала RESTKit и опубликовать результаты.

person Herwr    schedule 24.01.2012
comment
нет, на самом деле я пока вообще не использую CoreData. Можете ли вы также указать мне, как включить ведение журнала, какие результаты вы хотите увидеть? - person vittore; 24.01.2012
comment
Извините, мое предположение о CoreData; o) - это очень круто, стоит потратить время на изучение. К сожалению, ведение журнала не задокументировано в документах API, но если вы просмотрите примеры RESTKit, вы увидите, например, ссылку на используемые типы и методы RKLog<xxx>. RKLogConfigureByName("RestKit/ObjectMapping", RKLogLevelInfo); RKLogConfigureByName("RestKit/CoreData", RKLogLevelTrace); - person Herwr; 25.01.2012
comment
не похоже, что кто-то еще поможет, так что я просто дам тебе награду - person vittore; 27.01.2012
comment
Спасибо ;o).. Вы решили свою проблему? Если нет, то дали ли журналы какие-либо дополнительные подсказки? - person Herwr; 30.01.2012