是否可以使用Restkit安装AFNetworking 2.0

时间:2014-02-01 10:11:50

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

我有一个新闻应用程序,它以XML格式在线获取新闻,在本地存储在sqlite dbase中...这是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`

到底有没有?

3 个答案:

答案 0 :(得分:3)

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

将RestKit更新为使用版本2.0或重命名以便您可以使用这两个版本将会有很多工作......

答案 1 :(得分:1)

快速而肮脏的解决方案可能是将afnetworking的文件重命名为af1networking,将所有类/接口/常量重命名为AF1xxxx。如果我们只在Objective-C中使用名称空间或者AFNetworking,那么新版本将使用AF2作为前缀......

我认为我所描述的内容可以通过项目搜索来完成,并在几小时后更换。

替代方案是使用MKNetworkKit进行网络连接 - 它类似于afnetworking / afnetworking2,但最终你拥有2个不同的网络库,AFNetworking似乎也付出了更多的努力。

答案 2 :(得分:0)

使用 XMLDictionary forked版本,我基本上通过以下方式询问上述问题,实现了我想要实现的目标:

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获得了信用额度:)