我正在下载一个大文件,当它完成
URLSession(session: NSURLSession,
downloadTask: NSURLSessionDownloadTask,
didFinishDownloadingToURL location: NSURL)
方法被调用。
我想在本地保存生成的文件,例如NSSearchPathDirectory.DocumentDirectory
。
但是我遇到了一些问题,主要是因为文件非常大500MB +
我试过了:
NSFileManager.defaultManager().createFileAtPath(savePath,
contents: fileData,
attributes: nil)
适用于较小的文件<带有
的100MB但更大的文件Code=12 "Cannot allocate memory"
尝试将下载的文件转换为NSData时,如下所示:
let data: NSData = try NSData(contentsOfURL: location,
options: NSDataReadingOptions.DataReadingMappedIfSafe)
问题是,还有另一种方法可以将location: NSURL
转换为NSData
,以便大文件没有内存问题吗?
或者是否有更好的方法来保存NSFileManager.defaultManager().createFileAtPath()
以外的大文件,只是因为它不需要NSData
?