Pertanyaan yang sangat sederhana tetapi tampaknya tidak jelas di dokumen Apple.
Apakah writeToFile:atomically:
for NSData
, NSArray
etc. akan menimpa data yang ada pada file?
Jawaban:
Iya. Itu akan.
Berikut beberapa karakter untuk melewati batas 30 karakter.
Metode writeToFile:atomically:
SELALU OVERWRITE FILE , terlepas dari atomically:
YA atau TIDAK.
Informasi dari dokumen Apple (NSData, bagian "Menyimpan Data"):
Kelas NSData dan subkelasnya menyediakan metode untuk dengan cepat dan mudah menyimpan kontennya ke disk. Untuk meminimalkan risiko kehilangan data, metode ini memberikan opsi untuk menyimpan data secara atomik. Penulisan atom menjamin bahwa data disimpan secara keseluruhan, atau gagal sepenuhnya. Penulisan atom dimulai dengan menulis data ke file sementara. Jika penulisan ini berhasil, maka metode akan memindahkan file sementara ke lokasi akhirnya.
Tidak ada satu kata pun tentang memeriksa apakah file ada.
Misalnya, untuk metode copyItemAtPath:toPath:error:
dalam dokumen (NSFileManager, bagian Diskusi) secara khusus ditulis tentang pemeriksaan tersebut:
Jika file dengan nama yang sama sudah ada di dstPath, metode ini menghentikan upaya penyalinan dan mengembalikan kesalahan yang sesuai.