【问题标题】:is it possible to install AFNetworking 2.0 with Restkit是否可以使用 Restkit 安装 AFNetworking 2.0
【发布时间】:2014-02-25 03:05:57
【问题描述】:

我有一个新闻应用程序,它以 XML 格式在线获取新闻,并将其存储在本地的 sqlite 数据库中。这是 restkit 的完美案例。

但是,有时我还想手动获取 xml 数据(即,不想将其存储在 dbase 中).. 换句话说,我想直接通过 AFNetworking 请求它。我喜欢 AFNetworking 2.0 它自动解析 xml 的方式,所以我想使用该功能。

但是,Restkit 2.0 链接到 AFNetworking 1.3.. 所以如果我将它添加到我的 podfile:

pod 'RestKit', '~> 0.21.0'
pod "AFNetworking", "~> 2.0"

然后运行pod install 我得到以下错误:

[!] Unable to satisfy the following requirements:
- `AFNetworking (~> 1.3.0)` required by `RestKit/Network (0.21.0)`- `AFNetworking (~> 2.0)` required by `Podfile`

这里面还有吗?

【问题讨论】:

    标签: objective-c xml restkit afnetworking afnetworking-2


    【解决方案1】:

    一个快速而肮脏的解决方案可能是将afnetworking的文件重命名为af1networking,并将所有类/接口/常量重命名为AF1xxxx。如果我们在 Objective-C 中只有命名空间,或者 AFNetworking 的人会在新版本前加上 AF2...

    我认为我所描述的可以在几个小时内通过项目搜索和替换来完成。

    另一种方法是使用 MKNetworkKit 进行网络 - 它与 afnetworking/afnetworking2 类似,但您最终会拥有 2 个不同的网络库,而 AFNetworking 似乎投入了更多精力。

    【讨论】:

      【解决方案2】:

      使用 XMLDictionaryforked 版本,通过执行以下操作,我基本上实现了我想要实现的目标:

      NSURL *url = [NSURL URLWithString:urlStr];
      NSURLRequest *request = [NSURLRequest requestWithURL:url];
      
      AFXMLRequestOperation *operation =
      [AFXMLRequestOperation XMLParserRequestOperationWithRequest:request
       success:^(NSURLRequest *request, NSHTTPURLResponse *response, NSXMLParser *XMLParser) {
      
          NSDictionary *dict = [NSDictionary dictionaryWithXMLParser:XMLParser];
          // do stuff with dict        
      
       failure:failure:^(NSURLRequest *request, NSHTTPURLResponse *response, 
                         NSError *error, NSXMLParser *XMLParser){
      
          NSLog(@"somethign weng wrong in fetching news data: %@", 
                       [error localizedDescription]);
      }];
      
      [operation start];
      

      归功于Wain 在他的answer's cmets :)

      【讨论】:

        【解决方案3】:

        在 1.3.0 版本中,您可以访问 AFXMLRequestOperation,这应该可以实现相同的目标。

        更新 RestKit 以使用 2.0 版或重命名以便您可以同时使用这两个版本将需要大量工作...

        【讨论】:

        • 是的,它实现了相同的目标.. 但需要做更多的工作(即它返回NSXMLParser 的实例,所以我仍然必须实现NSXMLParserDelegate 方法)
        • 那我看看用正常的操作和github.com/nicklockwood/XMLDictionary
        • 有趣的库.. 但是 XMLDictionaryParser 只能通过数据、字符串或路径来实例化。如何使其与 AFNetworking 一起使用?如果我不得不跳回去,基本上使用基本的 NSUrlrequest 东西来从远程服务器加载数据,我认为它会破坏试图简化整个事情的目的。
        • 哦,好吧..找到它here..它不在原始库中,而是在它的一个分支中。谢谢!如果您不介意,将使用最终代码更新我的问题(一旦我运行它)
        • 更新 RestKit 以使用 2.0 版是什么意思? RestKit 支持 AFNetworking 2.0 吗??
        猜你喜欢
        • 1970-01-01
        • 2014-05-24
        • 2016-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多