2016-07-07 8 views
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: NSURLNSDataに変換する別の方法はありますか?

NSDataを必要としないので、NSFileManager.defaultManager().createFileAtPath()以外の大きいファイルを保存する方が良いでしょうか?

答えて

関連する問題