2014-01-11 2 views
1

Мне удалось установить RestKit с cocoapods, но теперь меня путают со всеми его различными классами.Restkit без примера данных ядра

Давайте предположим, что я получил класс:

@interface Actor : NSObject 

@property (strong, nonatomic) NSString *firstName; 
@property (strong, nonatomic) NSString *lastName; 
@property (strong, nonatomic) NSNumber *age; 

@end 

и что URL «http://SomeWebSite.com/actors» возвращает JSON:

{ 
    Actors: 
    [ 
     { 
     "firstName": "Will", 
     "lastName": "Ferrell", 
     "age": 25 
     }, 
     { 
     "firstName": "Jim", 
     "lastName": "carrey", 
     "age": 25 
     } 
    ] 
} 

Может кто-то пожалуйста, дать полный пример того, как получить массив людей с данными из URL?

Спасибо большое!

ответ

3

Что-то вроде этого:

RKObjectMapping* actorMapping = [RKObjectMapping mappingForClass:[Actor class]]; 
    [actorMapping addAttributeMappingsFromDictionary:@{ 
     @"firstName": @"firstName", 
     @"lastName": @"lastName", 
     @"age": @"age", 
     }]; 

    RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:actorMapping method:RKRequestMethodAny pathPattern:nil keyPath:@"Actors" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; 

    NSURL *URL = [NSURL URLWithString:@"http://SomeWebSite.com/actors"]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:URL]; 
    RKObjectRequestOperation *objectRequestOperation = [[RKObjectRequestOperation alloc] initWithRequest:request responseDescriptors:@[ responseDescriptor ]]; 
    [objectRequestOperation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { 
     RKLogInfo(@"Load collection of Actors: %@", mappingResult.array); 
    } failure:^(RKObjectRequestOperation *operation, NSError *error) { 
     RKLogError(@"Operation failed with error: %@", error); 
    }]; 

    [objectRequestOperation start]; 
} 
Смежные вопросы