【问题标题】:dataTaskWithRequest:completionHandler: is deprecateddataTaskWithRequest:completionHandler: 已弃用
【发布时间】:2016-09-12 07:33:48
【问题描述】:

我在我的项目中使用AFNetworking 从 REST api 获取数据。 但是当我使用 Github 中描述的方法时,我会收到警告。

这是我的代码:

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];

NSURL *URL = [NSURL URLWithString:@"http://httpbin.org/get"];
NSURLRequest *request123 = [NSURLRequest requestWithURL:URL];

NSURLSessionDataTask *dataTask = [manager dataTaskWithRequest:request123 completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
    if (error) {
        NSLog(@"Error: %@", error);
    } else {
        NSLog(@"%@ %@", response, responseObject);
    }
}];

[dataTask resume];

我的项目支持 iOS 7.0 及更高版本。

我的 Xcode 版本 7.3.1

有没有办法克服这个警告?

【问题讨论】:

  • 你能在这里发布你的警告吗?
  • : 'dataTaskWithRequest:completionHandler:' 已弃用
  • @vadian 同意。它在我身边工作。
  • 也在我这边工作!你使用的是哪个 Xcode 和 Swift 版本?
  • 我使用的是 Xcode 7.3.1

标签: ios objective-c afnetworking nsurlsessiondatatask


【解决方案1】:

现在已在 AFNetworking 3.0 中替换为以下内容

    - (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request
                           uploadProgress:(nullable void (^)(NSProgress *uploadProgress))uploadProgressBlock
                         downloadProgress:(nullable void (^)(NSProgress *downloadProgress))downloadProgressBlock
                        completionHandler:(nullable void (^)(NSURLResponse *response, id _Nullable responseObject,  NSError * _Nullable error))completionHandler;

【讨论】:

  • 它崩溃了 -[AFURLSessionManager dataTaskWithRequest:uploadProgress:downloadProgress:completionHandler:]:无法识别的选择器发送到实例 0x281c275a0
【解决方案2】:

此方法属于AFURLSessionManager。实际签名(使用两个块)是

- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request 
                                      success:(void ( ^ ) ( NSURLResponse *response , id responseObject ))success 
                                      failure:(void ( ^ ) ( NSError *error ))failure

【讨论】:

  • 在 2.0 或 3.0 中可用
  • 这在 3.0 中不可用。
猜你喜欢
  • 2014-02-12
  • 1970-01-01
  • 2016-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-20
  • 1970-01-01
相关资源
最近更新 更多