Domanda davvero semplice ma non sembra essere chiara nei documenti di Apple.Scriverà su File: atomicamente: sovrascrivere i dati?
writeToFile:atomically:
per NSData
, NSArray
ecc. Sovrascrivere i dati esistenti su un file?
Domanda davvero semplice ma non sembra essere chiara nei documenti di Apple.Scriverà su File: atomicamente: sovrascrivere i dati?
writeToFile:atomically:
per NSData
, NSArray
ecc. Sovrascrivere i dati esistenti su un file?
Sì. Lo farà.
Ecco alcuni caratteri per superare il limite di 30 caratteri.
Metodo writeToFile:atomically:
sovrascrive FILE, indipendentemente dal atomically:
SÌ o NO.
informazioni da Apple docs (NSData, sezione "Salvataggio dei dati"):
The NSData class and its subclasses provide methods to quickly and easily save their contents to disk. To minimize the risk of data loss, these methods provide the option of saving the data atomically. Atomic writes guarantee that the data is either saved in its entirety, or it fails completely. The atomic write begins by writing the data to a temporary file. If this write succeeds, then the method moves the temporary file to its final location.
Non una parola sul controllo se il file esiste.
Ad esempio, per il metodo copyItemAtPath:toPath:error:
a docs (NSFileManager, sezione di discussione) appositamente scritto su cui ha avuto luogo:
If a file with the same name already exists at dstPath, this method stops the copy attempt and returns an appropriate error.
+1 per "documentare" i vostri personaggi in più :) – Julian
Se lo fate o no atomicamente doesn non importa; in entrambi i casi, il file verrà completamente sovrascritto con i nuovi dati. –
Ah, ma per me non riesce e il file originale è intatto. Come writeToFile non restituisce un NSError, come posso indagare sull'errore? potrebbe essere un problema di autorizzazioni, ma non posso esserne sicuro. Il mio codice viene eseguito come bundle di plug-in di installazione, per un pacchetto di installazione che richiede i privilegi di root: non so come verificare/stampare i privilegi con cui viene eseguito il codice. –