Ich bin eine große Datei herunterzuladen, und wenn es die OberflächenSpeichern einer Datei in Swift 2+ aus URLSession
URLSession(session: NSURLSession,
downloadTask: NSURLSessionDownloadTask,
didFinishDownloadingToURL location: NSURL)
Methode wird aufgerufen.
Ich möchte die resultierende Datei lokal speichern, NSSearchPathDirectory.DocumentDirectory
zum Beispiel. Aber ich habe mit diesem einige Probleme, vor allem, weil die Dateien sehr groß sind 500MB +
Ich habe versucht:
NSFileManager.defaultManager().createFileAtPath(savePath,
contents: fileData,
attributes: nil)
die für kleinere Dateien < 100MB aber größere Dateien sterben mit
funktioniert gutCode=12 "Cannot allocate memory"
Beim Versuch, die heruntergeladene Datei auf NSData wie diese zu konvertieren:
let data: NSData = try NSData(contentsOfURL: location,
options: NSDataReadingOptions.DataReadingMappedIfSafe)
Die Frage ist, gibt es eine andere Möglichkeit, die location: NSURL
zu NSData
nur so umwandeln, damit es keine Speicherprobleme mit großen Dateien gibt?
Oder gibt es eine bessere Möglichkeit, die große Datei als NSFileManager.defaultManager().createFileAtPath()
nur so zu speichern, so dass NSData
nicht erforderlich ist?