我设法用cocoapods安装RestKit,但现在我对它包含的所有不同类感到困惑。
让我说我上课了:
@interface Actor : NSObject
@property (strong, nonatomic) NSString *firstName;
@property (strong, nonatomic) NSString *lastName;
@property (strong, nonatomic) NSNumber *age;
@end
并且网址“http://SomeWebSite.com/actors”返回json:
{
Actors:
[
{
"firstName": "Will",
"lastName": "Ferrell",
"age": 25
},
{
"firstName": "Jim",
"lastName": "carrey",
"age": 25
}
]
}
有人可以举一个完整的例子来说明如何从网址中获取数据的人数吗?
非常感谢!
答案 0 :(得分: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];
}