没有核心数据示例的Restkit

时间:2014-01-11 21:11:21

标签: ios rest restkit restkit-0.20

我设法用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
      } 
   ]
}

有人可以举一个完整的例子来说明如何从网址中获取数据的人数吗?

非常感谢!

1 个答案:

答案 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];
}