2013-11-06 2 views
1

Ключевого путем Это мое тело ответа:RestKit 0,20 - Отображение с

{ 
    "bsqn": 5, 
    "results": [ 
    { 
     "sqn": 1, 
     "res": "oldu!" 
    } 
    ] 
} 

Я хочу пройти в «Рес» имущество, которое я действительно нужно, с помощью этого ключевого пути: «bsqn.res»

//TestResponse.h 
@interface TestResponse : NSObject 

@property (nonatomic, copy) NSString *res; 

+ (RKObjectMapping *)objectMapping; 

@end 

// TestResponse.m 
@implementation TestResponse 

+ (RKObjectMapping *)objectMapping 
{ 
    RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[self class]]; 
    [mapping addAttributeMappingsFromDictionary:@{@"res": @"res"}]; 

    return mapping; 
} 

@end 


RKResponseDescriptor *newDesc = [RKResponseDescriptor responseDescriptorWithMapping:  
[TestResponse objectMapping] method:RKRequestMethodPOST pathPattern:nil keyPath:@"bsqn.res"  
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; 

Но это дает эту ошибку:

this class is not key value coding-compliant for the key hashcode 

есть ли способ сделать то, что я хочу? Спасибо ..

+0

'RKObjectMapping * mapping = [RKObjectMapping mappingForClass: [self class]];' I _think_ '[self class]' следует изменить на 'self', так как вы вызываете это в методе класса. – Eimantas

ответ

1

В вашем JSON, bsqn.res не существует. bsqn - просто строка.

Измените дескриптор ответа на keyPath:@"results" и RestKit будет отображать каждый элемент в массиве результатов в новый экземпляр вашего TestResponse и установить res свойства.

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