Записать данные в файл Какао? - PullRequest
1 голос
/ 23 августа 2011

Мне нужно использовать методы writeToFile: при записи данных (которые зашифрованы) в файл. Однако, скажи, что у меня есть:

NSData *encryptedData = [data AES256EncryptWithKey:key];

И я записываю зашифрованные данные в файл:

[encryptedData writeToFile:@"file.txt" automatically:YES];

Это по какой-то причине не записывает данные в "file.txt". Это очень простой вопрос, и я знаю, что мне не хватает чего-то сверхосновного. Если файл file.txt на самом деле отсутствует, его необходимо создать.

Ответы [ 2 ]

2 голосов
/ 23 августа 2011

Это, вероятно, не имеет никакого отношения к Какао или NSData.

В Unix (например, Mac OS X) пути, начинающиеся с /, являются абсолютными.Пути, начинающиеся с ~, относятся к домашнему каталогу текущего пользователя.Все остальное (например, file.txt) относится к текущему каталогу.При запуске чего-либо из Xcode это путь к исполняемому файлу (путь вывода компилятора).

Итак, чтобы записать это на рабочий стол, это будет:

[encryptedData writeToFile:@"~/Desktop/file.txt" atomically:YES];

Дляпапка документов, это будет:

[encryptedData writeToFile:@"~/Documents/file.txt" atomically:YES];

Не забывайте, что пути также чувствительны к регистру.

1 голос
/ 23 августа 2011
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag

возвращает логическое значение, чтобы сказать, было ли оно успешным или нет.Я бы начал там, если вы видите ДА, то файл успешно где-то записан.

Если это не сработает, тогда я бы дважды проверил объект, который вы пытаетесь кодировать, поддерживает NSCoding* Протокол 1005 *.Если ваш объект не поддерживает NSCoding, взгляните на это сообщение в блоге, чтобы найти простой способ добавить его.

Кроме того, его "атомарно" не "автоматически":)

...