Будет ли writeToFile: атомарно: перезаписать данные?

Действительно простой вопрос, но он не кажется явным в документах Apple.

Будет ли writeToFile:atomically: для NSData, NSArray и т.д. перезаписать существующие данные в файле?

Ответ 1

Да. Это будет.

Вот некоторые символы, чтобы передать ограничение на 30 символов.

Ответ 2

Метод writeToFile:atomically: ВСЕГДА НАРУЖИТЬ ФАЙЛ, независимо от atomically: YES или NO.

Информация из Документы Apple (NSData, раздел "Сохранение данных" ):

Класс NSData и его подклассы предоставляют методы для быстрого и легко сохранить их содержимое на диск. Чтобы свести к минимуму риск потери данных, эти методы обеспечивают возможность сохранения данных атомарно. атомное пишет, что данные либо сохраняются полностью, либо не удается полностью. Атомная запись начинается с записи данных на временный файл. Если эта запись завершается успешно, тогда метод перемещает временный файл в его окончательное местоположение.

Нет ни одного слова о проверке наличия файла.

Например, для метода copyItemAtPath:toPath:error: в docs (NSFileManager, раздел Обсуждение), специально написанного о такой проверке:

Если файл с таким же именем уже существует в dstPath, этот метод останавливает попытку копирования и возвращает соответствующую ошибку.