当前位置:  开发笔记 > IOS > 正文

当app强制退出时如何恢复下载?

如何解决《当app强制退出时如何恢复下载?》经验,为你挑选了0个好方法。

我的应用程序必须下载一个非常大的文件(390Mb),我正在使用TCBlopDownloadSwift进行下载(我将其转换为swift 2.0并且工作正常)并且我进行了后台下载配置.我想,当app强制退出时能够恢复下载.我发现当应用程序退出时,我仍然可以在缓存中找到下载的数据(在"com.apple.nsurlsessiond/Downloads /"+ bundleIdentifier中)作为tmp文件.但是当我尝试使用以下方法获取下载数据时:

func dataInCacheForName (name : String) -> NSData? {
    let PathToCache = (NSSearchPathForDirectoriesInDomains( NSSearchPathDirectory.CachesDirectory , .UserDomainMask, true)[0] as NSString).stringByAppendingPathComponent("com.apple.nsurlsessiond/Downloads/" + bundleIdentifier)
    let path = (PathToCache as NSString).stringByAppendingPathComponent(name)
    let data = NSData(contentsOfFile: path)
    print("data : \(data?.length)")
    return data
}

它返回nil,但文件不是nil.我可以移动文件,所以我尝试在文档中移动文件.但是如果我尝试使用数据继续下载,我会收到错误:

-[NSKeyedUnarchiver initForReadingWithData:]: data is NULL 

-[NSKeyedUnarchiver initForReadingWithData:]: data is NULL 

-[NSKeyedUnarchiver initForReadingWithData:]: data is NULL 

后台下载的简历数据无效.后台下载必须使用http或https,并且必须下载到可访问的文件.

并在URLSession中

(session: NSURLSession, task: NSURLSessionTask, didCompleteWithError sessionError: NSError?)

error userInfo : Optional([:])

: Optional(Error Domain=NSURLErrorDomain Code=-3003 "(null)")

错误代码-3003表示无法写入文件

我看过很多帖子但却找不到答案

最有希望的是https://forums.developer.apple.com/thread/24770

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有