|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jul 2006
Messaggi: 143
|
IOS8 SWIFT & XCODE 6.2 NSDATA da URL : Utilizzo memoria elevato
Ciao a tutti,
ho creato un'app che scarica i files da un URL e li salva in un percorso nella documents dell'IPAD. I files che vengono scaricati son circa 10000 tutti tra i 20 e i 50Kb. Quello che ho notato è che nonostante pulisca la variabile o comunque vada a scrivere sempre nella stessa variabile, l'utilizzo di memoria sale sempre fino a mandare in crash l'APP (dopo circa 2000 documenti) Ho provato di tutto ma la memoria si libera soltanto quando finisce il loop...Questo evento di download viene scatenato dalla pressione di una cella di una tableview. Ho notato che l'aumento di memoria è dato da questa riga: dataVal = NSData(contentsOfURL: self.URL) sembra che si tenga in memoria tutte le chiamate precedenti...ho googlato per giorni e non ho trovato niente (o se c'è probabilmente non ho usato le chiavi di ricerca giuste...) Qualcuno mi aiutiiii! Grazie a tutti Di seguito il Codice che viene eseguito nel loop (che viene richiamato dopo aver scaricato una lista dei files da scaricare da un webservice): Codice:
var err: NSErrorPointer = NSErrorPointer() let fm = NSFileManager.defaultManager() dataVal = NSData(contentsOfURL: self.URL) var isDir: ObjCBool = false if (!fm.fileExistsAtPath(writeP, isDirectory: &isDir)){ fm.createDirectoryAtPath(writeP, withIntermediateDirectories: true, attributes: nil, error: nil) } if (dataVal != nil){ let ex: Bool = fm.fileExistsAtPath(writeP + "/" + fileDaSalvare) if (ex) { fm.removeItemAtPath(writeP + "/" + fileDaSalvare, error: err) } dataVal?.writeToFile(writeP + "/" + fileDaSalvare, atomically: true) } dataVal = nil return;
__________________
ASUS P5B /\/ CONROE 6300 1,86GHZ @ 2.8Ghz /\/ ZALMAN 7500cu LED /\/ 4x512Mb PC6400 corsair 4-4-4-12 800Mhz Ultima modifica di Slhack : 02-04-2015 alle 14:00. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:30.