1
私は大きなファイルをダウンロードすることだし、それが終了したときにURLSession
URLSession(session: NSURLSession,
downloadTask: NSURLSessionDownloadTask,
didFinishDownloadingToURL location: NSURL)
メソッドが呼び出されるからスウィフト2+でファイルを保存します。
結果ファイルをローカルに保存する場合は、たとえばNSSearchPathDirectory.DocumentDirectory
とします。 しかし、私は、私が試してみましたファイルが非常に大きい500メガバイト+
ている主な理由は、これでいくつかの問題を抱えている:
小さなファイル< 100メガバイトのために正常に動作しますが、大きなファイルは で死ぬNSFileManager.defaultManager().createFileAtPath(savePath,
contents: fileData,
attributes: nil)
を
Code=12 "Cannot allocate memory"
このようNSDataのにダウンロードしたファイルを変換しようとすると:
let data: NSData = try NSData(contentsOfURL: location,
options: NSDataReadingOptions.DataReadingMappedIfSafe)
質問:大きなファイルにはメモリの問題がないので、location: NSURL
をNSData
に変換する別の方法はありますか?
NSData
を必要としないので、NSFileManager.defaultManager().createFileAtPath()
以外の大きいファイルを保存する方が良いでしょうか?