2016-07-07 7 views
1

나는 큰 파일을 다운로드하고 있는데이 완료 될 때URLSession

URLSession(session: NSURLSession, 
      downloadTask: NSURLSessionDownloadTask, 
      didFinishDownloadingToURL location: NSURL) 

방법은 호출되는에서 스위프트 2+에서 파일을 저장.

로컬로 결과 파일을 저장하려면 예를 들어 NSSearchPathDirectory.DocumentDirectory을 저장하고 싶습니다. 하지만 파일을 주로하기 때문에,이 몇 가지 문제에 봉착 매우 큰 5백메가바이트 +

나는 시도했다 : < 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() 이외의 대용량 파일을 저장하는 더 좋은 방법이 있습니까?

답변