Question vraiment simple mais cela ne semble pas clair dans la documentation d'Apple.
Est-ce que writeToFile:atomically:for NSData, NSArrayetc. écrasera les données existantes sur un fichier?
Réponses:
Oui. Ce sera.
Voici quelques caractères pour passer la limite de 30 caractères.
Méthode writeToFile:atomically: TOUJOURS OVERWRITE FILE , quel que soit le atomically:OUI ou le NON.
Informations provenant de la documentation Apple (NSData, section «Enregistrement des données»):
La classe NSData et ses sous-classes fournissent des méthodes pour enregistrer rapidement et facilement leur contenu sur le disque. Pour minimiser le risque de perte de données, ces méthodes offrent la possibilité de sauvegarder les données de manière atomique. Les écritures Atomic garantissent que les données sont soit enregistrées dans leur intégralité, soit qu'elles échouent complètement. L'écriture atomique commence par écrire les données dans un fichier temporaire. Si cette écriture réussit, la méthode déplace le fichier temporaire vers son emplacement final.
Pas un mot sur la vérification de l'existence du fichier.
Par exemple, pour la méthode copyItemAtPath:toPath:error:dans la documentation (NSFileManager, section Discussion) spécifiquement écrite sur une telle vérification:
Si un fichier du même nom existe déjà dans dstPath, cette méthode arrête la tentative de copie et renvoie une erreur appropriée.