Действительно простой вопрос, но в документации Apple он не совсем ясен.
Будет ли writeToFile:atomically:
for NSData
и NSArray
т.д. перезаписывать существующие данные в файле?
Ответы:
Да. Это будет.
Вот некоторые символы, которые могут преодолеть ограничение в 30 символов.
Метод writeToFile:atomically:
ВСЕГДА ПЕРЕЗАПИСАТЬ ФАЙЛ , независимо от atomically:
ДА или НЕТ.
Информация из документации Apple (NSData, раздел «Сохранение данных»):
Класс NSData и его подклассы предоставляют методы для быстрого и простого сохранения своего содержимого на диск. Чтобы свести к минимуму риск потери данных, эти методы предоставляют возможность атомарного сохранения данных. Атомарные записи гарантируют, что данные либо сохраняются полностью, либо полностью выходят из строя. Атомарная запись начинается с записи данных во временный файл. Если эта запись завершается успешно, метод перемещает временный файл в его окончательное расположение.
Ни слова о проверке существования файла.
Например, для метода copyItemAtPath:toPath:error:
в документации (NSFileManager, раздел Обсуждение) специально написано о такой проверке:
Если файл с таким именем уже существует в dstPath, этот метод останавливает попытку копирования и возвращает соответствующую ошибку.