将RestKit从0.10升级到0.20问题

时间:2014-03-30 01:31:58

标签: ios restkit restkit-0.20

我无法弄清楚如何纠正从RestKit 0.10升级到0.20后我遇到的错误......有人可以帮忙吗?

谢谢!

ViewController.m

- (void)viewDidLoad {

// Wain, I added this RKResponseDescriptor
            RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor
              responseDescriptorWithMapping:[Feed mapping] method:RKRequestMethodAny 
              pathPattern:nil keyPath:@"springs" statusCodes:nil];


            // These 4 lines has errors and needs to be fixed
        // No visible @interface for 'RKObjectManager' declares the selector 'loader'
            [[RKObjectManager sharedManager] 
            loadObjectsAtResourcePath:@"/springs/?apikey=xxx" 
            usingBlock:^(RKObjectLoader *loader) {
              loader.onDidLoadObjects = ^(NSArray *objects){

            springs = objects;

        // These 2 lines have errors that need to be fixed
        // Use of undeclared identifier 'loader'
           [loader.mappingProvider  setMapping:[Spring mapping] forKeyPath:@"springs"];
           loader.onDidLoadResponse = ^(RKResponse *response){
}

我看到了GitHub的帮助页面,但我无法自己解决这个问题。真的很感激!

更新

好的我想我知道如何更换第一行,只需使用  [RKObjectManager.sharedManager getObjectsAtPath:@"/springs/?apikey=xxx" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) ...

但我仍然不确定如何处理loader.onDidLoadObjects = ^(NSArray *objects)部分!

1 个答案:

答案 0 :(得分:1)

您显示的0.1x代码会下载响应数据,然后调用您的回调询问如何处理它,因此您在回调中提供映射。

0.2x并不像那样工作。它在您发出请求之前将所有映射作为配置,并且映射与响应描述符相关联(因此RestKit可以搜索所有配置选项并应用匹配的所有内容)。

因此,您需要先进行配置并将其应用到RKObjectManager,然后才能实际获得'来自服务器的任何内容。