2016-05-30 5 views
4

Я использую Restkit 0.26.0 для отображения JSON с несколькими слоями, и это ключевой путь вызывает тревоги:Restkit не в состоянии использовать подходящее отображение

productColorImages: [ 
{ 
id: 10, 
productId: "232", 
color: "green", 
url: "exampleURL.com" 
}, 
{ 
id: 11, 
productId: "232", 
color: "red", 
url: "exampleURL.com" 
}, 
{ 
id: 12, 
productId: "232", 
color: "blue", 
url: "exampleURL.com" 
} 
], 

Мое отображение

 RKObjectMapping *transferProductColorImageMapping = [RKObjectMapping mappingForClass:[TransferProductColorImage class]]; 
[transferProductColorImageMapping addAttributeMappingsFromDictionary:@{  @"identifier" : @"id", 
                      @"URL" : @"URL", 
                      @"productId" : @"productId", 
                       @"color" : @"color" 

[getProductPageMappingaddRelationshipMappingWithSourceKeyPath:@"productColorImages" mapping:transferProductColorImageMapping];

Целевой класс

@interface TransferProductColorImage : NSObject 

@property (nonatomic) NSNumber * identifier; // Mapps to id ;int 64 

@property (nonatomic) NSString * URL; 
@property (nonatomic) NSString * productId; 
@property (nonatomic) NSString * color; 

Проблема в том, что результирующий объект имеет нужный класс, но свойства не заполнены.

Я искал в журналах и нашел это:

2016-05-30 17:42:24.007 thebrandsapp[20697:7047455] T restkit.object_mapping:RKMappingOperation.m:1173 Performing mapping operation: <RKMappingOperation 0x7f9e3b9c11e0> for 'TransferProductColorImage' object. Mapping values from object { 
    color = green; 
    id = 10; 
    productId = 232; 
    url = "exampleURL.com"; 
} to object <TransferProductColorImage: 0x7f9e3b846d60> with object mapping (null) 

На модели объекта в productColorImages является NSArray:

@property (nonatomic) NSArray <TransferProductColorImage *> * productColorImages; 

Это странно, потому что. Как Restkit знает, какое отображение использовать, если отображение равно null. Есть ли причина, по которой для сопоставления объектов может быть установлено значение null?

Обновление: я обнаружил, что идентификатор и свойство цвета были правильно отображены, идентификатор и URL неправильно отображаются.

+0

Вы создали отношения в своей модели? –

+0

Я обновил вопрос – HasenBaumeister

+0

Извините, я предполагал, что вы использовали Core Data для сохранения и NSManagedObject. Но это не так. Единственное, что я могу предложить, - это NSOrderedSet, а не NSArray. Все мои - NSOrderedSets. –

ответ

1

Я изменил свойство URL как строчное: «url» и сопоставил его точно так же, как и раньше, и это сработало. Кажется, что имя свойства all-caps бросило RestKit.

Я набрал идентификатор и идентификатор, теперь они правильно отображаются.

Смежные вопросы