• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 使用 AFNetworking 2.0 处理后台任务

[复制链接]
菜鸟教程小白 发表于 2022-12-12 12:09:14 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我在使用 AFURLSessionManager 实现后台任务时遇到问题。 我正在创建一个带有 BaseURL 和 SessionConfiguration 的新 AFHTTPSessionManager,使用 NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier: 并使用便捷的方法来创建 POST 请求。

当我运行我的应用程序时,第一个请求正常发送,但第二个请求返回标识符为 {ID} 的后台 URLSession 已存在! 并导致应用程序崩溃。

我看过 Apple 的 WWDC 2013 视频,他们建议您只创建一次 session 配置,使用

dispatch_once(&onceToken, ^{
    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration backgroundSessionConfiguration"com.yourcompany.appId.BackgroundSession"];
    session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
});

但是,AFURLSessionManager 的 session 属性设置为只读,我无法传递自定义 NSURLSession,只有一个 NSURLSessionConfiguration,它是在 AFURLSessionManager:init 中创建的>:

self.session = [NSURLSession sessionWithConfiguration:self.sessionConfiguration delegate:self delegateQueue:self.operationQueue];

我觉得我做错了什么,但我还能如何使用 AFNetworking 支持后台任务?



Best Answer-推荐答案


你不能实例化一个新的AFHTTPSessionManager然后改变它的session来引用一些单例NSURLSession是正确的。因此,您应该将 AFHTTPSessionManager 对象本身设为可在整个应用程序中重用的共享实例。

end of this answer ,我提供了一个使用 AFNetworking 进行后台 session 的示例。

关于ios - 使用 AFNetworking 2.0 处理后台任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26453822/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap