Naprawdę proste pytanie, ale nie wydaje się być jasne w dokumentach Apple.
Czy writeToFile:atomically:dla NSData, NSArrayitp Zastąp istniejące dane dotyczące pliku?
Odpowiedzi:
Tak. To będzie.
Oto kilka znaków, które mogą przekroczyć limit 30 znaków.
Metoda writeToFile:atomically: ZAWSZE NADPISYWAJ PLIK , niezależnie od atomically:TAK lub NIE.
Informacje z dokumentów Apple (NSData, sekcja „Zapisywanie danych”):
Klasa NSData i jej podklasy zapewniają metody szybkiego i łatwego zapisywania ich zawartości na dysku. Aby zminimalizować ryzyko utraty danych, metody te zapewniają opcję niepodzielnego zapisywania danych. Zapisy Atomic gwarantują, że dane zostaną zapisane w całości lub całkowicie zawiedzie. Zapis atomowy rozpoczyna się od zapisania danych do pliku tymczasowego. Jeśli ten zapis powiedzie się, metoda przenosi plik tymczasowy do jego ostatecznej lokalizacji.
Ani słowa o sprawdzaniu, czy plik istnieje.
Na przykład dla metody copyItemAtPath:toPath:error:w dokumentacji (NSFileManager, sekcja Dyskusja) specjalnie napisanej o takim sprawdzaniu:
Jeśli plik o tej samej nazwie już istnieje w dstPath, ta metoda zatrzymuje próbę kopiowania i zwraca odpowiedni błąd.