繁体   English   中英

将RestKit从0.10升级到0.20的问题

[英]Upgrading RestKit from 0.10 to 0.20 problems

从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)部分!

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

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

因此,您需要先进行配置并将其应用到RKObjectManager然后才能从服务器实际“获取”任何内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM