iOS基础之NSURLSession的一些异常
来源:互联网 发布:mac lion系统下载 编辑:程序博客网 时间:2024/05/16 11:50
前言
在使用UNSURLSession进行下载文件的时候,出现了一些头疼的异常,这篇文章简单的记录了这些问题的解决办法
正文
Issue1.A background URLSession with identifier backgroundSession already exists
下面的代码是在VC里面的,当每次重新进入VC的时候就会出现上面的错误,这是因为每次进入VC,它的_session都是nil,所以会重复去创建identifier为back的sessionConfiguration
- (NSURLSession *)session { if (!_session) { NSURLSessionConfiguration *config = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"back"]; _session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:[NSOperationQueue mainQueue]]; } return _session;}
解决办法: 我在VC的viewDidDisappear中使用了invalidateAndCancel就可以了详情请看《A background URLSession with identifier backgroundSession already exists(评论)》 - (void)viewDidDisappear:(BOOL)animated {
[self.session invalidateAndCancel];
}
ignore: 如果不在viewDidDisappear 使用[self.session invalidateAndCancel];那么之前按照back注册的NSURLSessionConfiguration还是存在,即使它的session已经为nil了。这里我还有一个问题导致了上面的异常,就是通知每次在init加入而从未移除,每次进入VC页面就注册通知。在下载前触发这个通知导致重复执行通知方法。
参考资料
《iOS的7 NSURLSession下载在后台多个文件(iOS 7 NSURLSession Download multiple files in Background)》
《AFNetworking Background Session Configuration for iOS 8 Extension》
《A background URLSession with identifier backgroundSession already exists(评论)》
[iOS NSNotifaction] postNotification多次调用问题
- iOS基础之NSURLSession的一些异常
- iOS之NSURLSession的使用
- [iOS]网络之NSURLSession的数据传输
- [iOS]网络之NSURLSession的文件下载
- [iOS]网络之NSURLSession的文件上传
- iOS -- 断点续传之 NSURLSession
- iOS NSURLSession的使用
- ios NSURLSession的应用
- [iOS NSURLSession] NSURLSession 的简介查阅
- iOS 之NSURLConnection和NSURLSession
- iOS开发之NSURLSession详解
- iOS开发之网络编程--1、NSURLSession的基本使用
- iOS开发之网络编程--1、NSURLSession的基本使用
- iOS开发之NSURLSession/NSURLConnection HTTP load failed 的解决办法
- iOS中NSURLSession的使用
- iOS中NSURLSession的使用
- iOS - NSURLSession的简单使用
- 【iOS开发-99】POST四种数据提交方式以及NSURLSession上传任务的一些知识
- 学习计划201610
- Dijit简介
- String、StringBuilder和StringBuffer之间的区别
- TimesTen备份文件名解读
- python从入门到精通 第三节 字符串
- iOS基础之NSURLSession的一些异常
- C#语言点
- 洛谷 P1079 Vigenère 密码
- Maven搭建SpringMVC+Mybatis框架
- hdu2087剪花布条
- 【交换机】MAC-VLAN的功能作用是什么,如何设置
- linux 定期删除spark日志 shell 脚本
- 模拟实现strstr()函数
- Unity和Android 事件函数的比较