你怎么知道什么时候NSURLSession对象被iOS无效?
我在我的testing中看到一个错误,偶尔出现以下iOS错误:
具有标识符{GUID}的后台URLSession已经存在!
即使在每次testing之后我都会在清理调用中的NSURLSession上调用invalidateAndCancel。 我正在寻找一种方法来等待,直到我确定NSURLSession对象已经失效,然后再继续下一个testing。
当你创buildNSURLSession
对象时,使用sessionWithConfiguration:(NSURLSessionConfiguration *)configuration delegate:(id <NSURLSessionDelegate>)delegate delegateQueue:(NSOperationQueue *)queue;
方法并将自己指定为委托。
然后你会得到一个callback: - (void)URLSession:(NSURLSession *)session didBecomeInvalidWithError:(NSError *)error;
当会话失效时。
你不能相信invalidateAndCancel
将立即停止所有的任务,因为它是由任务来处理取消呼叫。
从NSURLSession
的头NSURLSession
:
/* -invalidateAndCancel acts as -finishTasksAndInvalidate, but issues * -cancel to all outstanding tasks for this session. Note task * cancellation is subject to the state of the task, and some tasks may * have already have completed at the time they are sent -cancel. */
苹果
“重要
会话对象保持对委托的强引用,直到您的应用退出或显式使会话无效。 如果你没有使会话无效,你的应用程序会泄漏内存直到它退出。“
也许代表是无效的会议(如果你总是使用代表)。 虽然同意为什么没有isValid电话会议?
- 使用inputtypes=文件捕获照片时,移动Safari会崩溃
- 在OS X 10.10(优胜美地Beta版)中,如何使用iOS 6.1模拟器进行testing?
- 如何使用Restkit 0.20.0创build/发布新的托pipe对象到服务器?
- UITableViewCell ImageView不能正确缩放?
- ProjectName没有iPhone 5可以执行的体系结构
- WWDC17 —回顾展
- Singleton类不用UICollectionViewCell的Swift更新数据
- float和double有什么区别?
- iPhone应用程序:闪屏后避免白屏。 让闪屏逗留,在UIWebview加载后隐藏它? 启animation面不能正确隐藏