Я использую Restkit 0.20.x для отображения объекта из json, например
{
"d":{
"results":[
{
"Web":[
"key1":"value1",
"key2":"value2"
],
"Image":[
"key1":"value1",
"key2":"value2"
],
},
],
},
}
Моя основная цель - управлять ключами "Web" и "Image". Я пытаюсь сопоставить объект, но застрял на ключе «результаты» (значение ключа «результаты» - это массив, который имеет только один элемент в качестве словаря). Как использовать RestKit для отображения объекта в моем случае?
Моя неудачная реализация:
WFSD.h
@interface WFSD : NSObject
@property (nonatomic, strong) WFSResults *results;
@end
WFSResults.h
@interface WFSResults : NSObject
@property (nonatomic, strong) WFSResult *result;
@end
WFSResult.h
@interface WFSResult : NSObject
@property (nonatomic, strong) WFSWeb *web;
@property (nonatomic, strong) WFSImage *image;
@end
MyController.m
RKObjectMapping* dMapping = [RKObjectMapping mappingForClass:[WFSD class]];
RKObjectMapping* resultsMapping = [RKObjectMapping mappingForClass:[WFSResults class]];
RKRelationshipMapping* rsMapping1 = [RKRelationshipMapping relationshipMappingFromKeyPath:@"results" toKeyPath:@"results" withMapping:resultsMapping];
[dMapping addPropertyMapping:rsMapping1];
RKObjectMapping* resultMapping = [RKObjectMapping mappingForClass:[WFSResult class]];
[resultsMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:nil toKeyPath:@"result" withMapping:resultMapping]];
RKRelationshipMapping* rsMapping2 = [RKRelationshipMapping relationshipMappingFromKeyPath:@"Image" toKeyPath:@"Image" withMapping:imageMapping];
[resultMapping addPropertyMapping:rsMapping2];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:dMapping
pathPattern:nil
keyPath:@"d"
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];