ios - 弃用 : 'sendAsynchronousRequest:queue:completionHandler:' in iOS9

标签 ios objective-c xcode ios9

我有自己的类来进行 http 调用,但现在在 iOS9 中不推荐使用此方法:

[NSURLConnetion sendAsynchronousRequest:queue:completionHandler:]

我正在尝试测试新的 [NSURLSession dataTaskWithRequest:completionHandler:]

但是 Xcode 报错,因为它没有找到这个方法。

带有弃用行的 Xcode 编译器警告:

 'sendAsynchronousRequest:queue:completionHandler:' is deprecated: first deprecated in iOS 9.0 - Use [NSURLSession dataTaskWithRequest:completionHandler:] (see NSURLSession.h

新方法出错:

No known class method for selector 'dataTaskWithRequest:completionHandler:'

方法:

-(void)placeGetRequest:(NSString *)action withHandler:(void (^)(NSURLResponse *response, NSData *data, NSError *error))ourBlock {

    NSString *url = [NSString stringWithFormat:@"%@/%@", URL_API, action];


    NSURL *urlUsers = [NSURL URLWithString:url];
    NSURLRequest *request = [NSURLRequest requestWithURL:urlUsers];

    //[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:ourBlock];
    [NSURLSession dataTaskWithRequest:request completionHandler:ourBlock];
}

有什么想法吗?

最佳答案

dataTaskWithRequest:completionHandler: 是实例方法,不是类方法。您必须配置新 session 或使用共享 session :

[[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:ourBlock] resume];

关于ios - 弃用 : 'sendAsynchronousRequest:queue:completionHandler:' in iOS9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31219548/

相关文章:

ios - 如何使用任何月份和周数 swift 3 获取周开始日期和结束日期?

ios - 在 Storyboard中的 View Controller 之间滑动手势

ios - 如何使用 NSURLConnection 查看为 HTTP 请求设置了哪些 header 字段(cookie)?

iphone - 如何解决内存泄漏

iOS 开发 : guaranteed top layer

ios - 如何在 Apple WatchKit 中制作动画按钮?

xcode - 使用 Storyboard或以编程方式创建 View 时自定义初始化

ios - 2个纵向和横向 Storyboard

ios - 如何在 xamarin ios 中从 UIAlertController 创建调用对话框

php - HTTP post 请求 objective-c