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 vs AFNetworking
  • RestKit OAuth 2 Пароль проверки подлинности
  • Restkit + Objective-c - Несколько вызовов на тот же веб-сервис
  • Получение нулевых значений после успешного поиска в RestKit
  • Выполнение RestKit как NSOperartion
  • Параметры запроса RestKit GET
  • Howto запрашивает вложенные ресурсы, используя RESTkit для Objective-C
  • RestKit CoreData зависает во время модульного теста
  • Как получить файлы cookie и использовать их для других запросов, таких как POST (iOS)?
  • Restkit на Xcode 4.5 GM не работает на устройстве iOS 6 - файл был создан для архива, который не связан с архитектурой
  • RestKit понимает, что положить в «pathPattern» и «keyPath» в RKResponseDescriptor
  • Interesting Posts

    xcodebuild код для создания предупреждений об ошибках, даже если все профили находятся в правильной папке

    Интервал ожидания SKAction НЕ согласуется

    Лучшая практика для обработки расширенной строки состояния с помощью приложения WantsFullScreenLayout?

    PerformFetchWithCompletionHandler дважды вызывается при имитации с помощью Xcode

    Невозможно использовать собственный класс в протоколе с атрибутом @objc?

    Предупреждение о компоновщике Apple Mach-O (id): создание для MacOSX, но соединение с dylib, созданное для iOS

    iframe предотвращает прокрутку iScroll на мобильном Safari

    объектное преобразование c для NSString в NSDecimalNumber

    Невозможно увидеть вариант на странице facebook с устройства Android.

    Как заставить UITextField стать первым ответчиком, используя его поле тега

    Ионная проблема рендеринга во время прокрутки на iOS

    UIScrollView – использование масштабирования и contentsoffset для CGAffineTransform

    Преобразование JSON в .plist

    Swift присваивает двойное значение массиву malloc'd

    iOS 8 UITableView separator inset 0 не работает

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