Я использую 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"
[getProductPageMapping
addRelationshipMappingWithSourceKeyPath:@"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 неправильно отображаются.
Вы создали отношения в своей модели? –
Я обновил вопрос – HasenBaumeister
Извините, я предполагал, что вы использовали Core Data для сохранения и NSManagedObject. Но это не так. Единственное, что я могу предложить, - это NSOrderedSet, а не NSArray. Все мои - NSOrderedSets. –