Restkit 0.20 вложенный массив проблем с отображением объектов

У меня возникла проблема с отображением следующей полезной нагрузки JSON с использованием RestKit 0.20

Я пытаюсь сопоставить Продукт и его вложения как массив со следующими объектами. Я не использую RKEntityMapping, просто RKObjectMappings, поскольку это приложение не использует Core Data. Я ознакомился с документацией по сопоставлениям объектов в вики Wiki RestKit и просмотрел тестовые примеры в исходном коде для аналогичной настройки, но не повезло.

{ "Result": { "Product": { "Name": "Evil Stuff", "Description": "Its EVIL!", "Attachments": [ { "Id": "c4277b8f-5930-4fee-a166-b5f311d3a353", "Name": "commands_to_recreate_db.txt", "Type": "Contraindications" }, { "Id": "be4d2e2e-cb3e-48d2-9c7a-fbfddea3a1be", "Name": "json.txt", "Type": "Medication Guide" } ] }, "Company": { "Name": "Omni Consumer Products", "AddressLine1": "100 Evil Dr.", "AddressLine2": null, "AddressLine3": null, "City": "MARS", "State": null, "Zip": "10000", "Country": null, "PhoneNumber1": "555-555-5555", "PhoneNumber2": null, "PhoneNumber3": null, "FaxNumber": null, "WebSite": null, "Email": null }, "Representatives": [] }, "Messages": [], "Success": true } @interface clinProduct : NSObject @property (nonatomic, retain) NSString *name; @property (nonatomic, retain) NSString *description; @property (nonatomic, retain) NSArray *attachments; @interface clinAttachment : NSObject @property (strong, nonatomic) NSString *attachmentID; @property (strong, nonatomic) NSString *attachmentName; @property (strong, nonatomic) NSString *type; 

Вот мои сопоставления объектов и мой RKResponseDescriptor

  RKObjectMapping *attachmentMapping = [RKObjectMapping mappingForClass:[clinAttachment class]]; [attachmentMapping addAttributeMappingsFromDictionary:@{@"Id" : @"attachmentID", @"Name" : @"attachmentName", @"Type" : @"type"}]; RKObjectMapping *productMapping = [RKObjectMapping mappingForClass:[clinProduct class]]; [productMapping addAttributeMappingsFromDictionary:@{@"Description" : @"description", @"Name" : @"name"}]; RKRelationshipMapping *relationshipMapping = [RKRelationshipMapping relationshipMappingFromKeyPath:@"Attachments" toKeyPath:@"attachments" withMapping:attachmentMapping]; [productMapping addPropertyMapping:relationshipMapping]; RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:productMapping pathPattern:nil keyPath:@"Result.Product" statusCodes:[NSIndexSet indexSetWithIndex:200]]; 

Я получаю правильный ответ, но странная вещь – это единственное отображение атрибута описания для Продукта, даже его название!

 2013-03-05 18:39:49.775 iOS[38965:c07] Loaded results: <RKMappingResult: 0x96a8950, results={ "Result.Product" = "Its EVIL!"; 

Когда я добавляю второй дескриптор ответа, сверяясь в Result.Product.Attachments, я могу получить массив вложений без проблем только с дескриптором ответов вложений. Любая помощь будет принята с благодарностью, я сбила себе голову на этом с воскресенья днем. Извинения за стену кода, но его сложно описать установки RestKit полностью без всех частей. Спасибо.

One Solution collect form web for “Restkit 0.20 вложенный массив проблем с отображением объектов”

Чтобы облегчить и сделать ответ более заметным для пользователей:

Комментарий @Jorge Chao (ответ) по собственному вопросу:

Ответ на этот вопрос:

Я исправил проблему. Во-первых, RKMappingResult который я вставил. Он отображает элемент, но он отображает только один из его атрибутов. Чтобы он работал, я удалил RKRelationshipMapping и NSAray в классе продукта и просто добавил второй RKResponseDescriptor для вложений.

Все выглядит правильно в RKMappingResult , массив просто содержит гетерогенные элементы, к сожалению. Это взлом, но он, наконец, исправил мою проблему.

  • RestKit: какой метод делегата вызывается для postObject?
  • Поддержка онлайн и офлайн-приложений для приложений RestKit iOS
  • Объект (null) не является ключевым значением, совместимым с кодировкой для ключевого «заголовка»,
  • XCode: Неопределенные символы для архитектуры arm64 error
  • Ad-Hoc для статических библиотек (Testflight)
  • RestKit - Не удалось отобразить данные JSON на моем TableView
  • Значения RestKit Map из вложенного словаря
  • Restkit + Coredata - NSFetchedResultsControllerDelegate callback не запускается только для операций UPDATE
  • Что вы предпочитаете как клиент RESTful - RestKit vs Resty
  • Проблемы с RESTKit не могут правильно отображаться
  • Интеграция ResKit в существующее приложение Core Data
  • Interesting Posts

    Ошибка PFKeychainStore -34018

    ios drawViewHierarchyInRect crash EXC_BREAKPOINT UNKNOWN

    Используйте UIAppearance для установки цвета текста кнопки назад для UIBarButtonItem?

    Лучший способ кэширования изображений в приложении ios?

    Можем ли мы установить неопубликованное приложение iOS на удаленном устройстве?

    Как использовать GADBannerViewDelegate для выполнения действий на adViewDidReceiveAd

    cameraOverlayView выше анимация затвора

    Звуковой сбой при одновременном воспроизведении двух аудиофайлов AVPlayer

    UIViews со встроенными представлениями прокрутки (UITableView, UICollectionView) неоднозначны с Auto Layout в Xcode 6 b2. Ошибка или причина?

    Простой способ делегирования приложений для отображения UIAlertController (в Swift)

    Можно ли доверять objectForKey сразу после setObject в NSCache?

    iOS Различные размеры шрифта в одном классе для разных устройств

    как синхронизировать данные в многопользовательской игре (игровые центры ios)

    FBGraphUser в Swift

    Каков рекомендуемый способ принудительного применения определенного rootViewController в пользовательском UINavigationController?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.