【问题标题】:AFNetworking 2.0.3 not working on iOS 6AFNetworking 2.0.3 不适用于 iOS 6
【发布时间】:2013-12-25 12:51:50
【问题描述】:

我通过 CocoaPods 安装了 AFNetworking:

pod "AFNetworking", '~> 2.0.3'

所以,从标准 GET 请求调用的方法:

- (NSURLSessionDataTask *)GET:(NSString *)URLString
                   parameters:(NSDictionary *)parameters
                      success:(void (^)(NSURLSessionDataTask *task, id responseObject))success
                      failure:(void (^)(NSURLSessionDataTask *task, NSError *error))failure

在 iOS 6 上调用 - (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request; 返回 nil

因为 AFNetworking 使用了 iOS 7.0 中引入的NSURLSessionTask & NSURLSession

来自AFNetworking Documentation

新要求:iOS 6、Mac OS X 10.8 和 Xcode 5

AFNetworking 2.0 正式支持 iOS 6+、Mac OS X 10.8+ 和 Xcode 5。


为什么它调用方法,只出现在 iOS7 中?

【问题讨论】:

    标签: iphone ios6 nsurlconnection afnetworking afnetworking-2


    【解决方案1】:

    我找到了解决办法:

    我的 API 客户端继承自 AFHTTPSessionManager(如在 afnetworking 站点示例中)。

    但如果您使用的是 iOS 6,则只需保留从 AFHTTPRequestOperationManager 的继承,就像在 AFNetworking 1.x 版本中一样。

    替换:

    @interface APIClient : AFHTTPSessionManager
    

    到:

    @interface APIClient : AFHTTPRequestOperationManager
    

    【讨论】:

    • 这样做需要两种调用方式,例如GET:parameters:success:failure 方法,因为成功和失败块在 AFHTTPSessionManager 和 AFHTTPRequestOperationManager 中是不同的。相反,只需扩展 AFHTTPRequestOperationManager(只要您的应用支持 iOS6)
    猜你喜欢
    • 2012-10-25
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2013-02-14
    • 1970-01-01
    相关资源
    最近更新 更多