nwa*_*les 7 nsurlsession nsurlsessiondownloadtask ios8
我有NSURLSession正在下载多个文件.我正在为ios 8更新ios 7应用程序.它在ios 7中工作正常,但是当符合ios 8时代表meathod
URLSessionDidFinishEventsForBackgroundURLSession:
Run Code Online (Sandbox Code Playgroud)
永远不会被称为.
我挖得更深一些
-(void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location
Run Code Online (Sandbox Code Playgroud)
和
-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
Run Code Online (Sandbox Code Playgroud)
委托meathods我正在检查剩余下载任务的会话:
[self.session getTasksWithCompletionHandler:^(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks){ ...}
Run Code Online (Sandbox Code Playgroud)
在最后一个委托meathod上,在downloadTasks数组中总会有一个元素重新出现.奇怪的是,此下载任务并不总是引用同一文件,并且该任务的状态显示下载已完成.
再次,在ios7中工作正常.仅在ios 8中出现问题.
我假设您正在 iOS 模拟器上进行测试。如果是,则另一个错误是导致此不当行为的原因。iOS8 模拟器永远不会真正后台应用程序,因此完成处理程序不会触发。
尝试在设备上运行,它会起作用。
您可以在Apple 论坛或这篇博文中找到完整的讨论
| 归档时间: |
|
| 查看次数: |
2105 次 |
| 最近记录: |