scfhao / SODownloader

A simple downloader base on AFNetworking

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

__NSCFBackgroundDownloadTask was deallocated while key value observers were still registered with it.

scfhao opened this issue · comments

我在模拟器上测试 Demo 时,遇到程序产生异常的情况,这个异常在 AFNetworkingIssue中可以找到记录

我的测试步骤如下(非必现,如果你在测试过程中遇到同样的问题,请在下面评论):

  • 在列表中点击一个未下载的内容启动下载。
  • 使应用进入后台(模拟器 Shift+Command+H)。
  • 停止在模拟器上运行应用。
  • 在 Xcode 上重新 Run 应用。
  • 点击示例中的“音乐列表”、“已下载列表”或“下载设置”

但我在真机上测试 Demo 时,并未遇到该问题,如果你在真机上遇到这个问题,请在下方评论留言告知。

另外,我还发现一个真机与模拟器上后台下载的差别:

真机:iPhone SE、iOS 9.3.3
Xcode:Xcode 8.3.2,模拟器版本为iPhone 7 Plus - iOS 10.3(14E269)

真机效果:在真机上,将多个文件加入下载队列,后台下载完成一个文件后,会调用- application:handleEventsForBackgroundURLSession:completionHandler:方法,进而触发下载队列中后续处于等待下载状态的文件开始下载。
iOS模拟器效果:在模拟器上下载完一个文件后并不调用上述AppDelegate方法,而是出于暂停状态,把程序切回前台后才会继续下载队列中的其他文件。

基于上述的差异,我建议在测试后台下载时尽量使用真机进行测试。可能在不同的模拟器版本或iOS版本上的运行效果会有差异,如果你发现更多的情况,欢迎在下面进行留言。