iOS: сохранение в файл работает на эмуляторе, но не на устройстве - PullRequest
5 голосов
/ 18 октября 2011

Мое приложение записывает зашифрованные данные информации / предпочтений пользователя в файл и читает из этого файла при следующем открытии приложения.

Запись файла:

- (BOOL)writeFile:(NSString *)data:(NSString *)fileName {
  return [data writeToFile:fileName
                atomically:YES
                  encoding:NSUTF8StringEncoding error:nil];
}

Чтение файла:

- (NSString *)readFile:(NSString *)fileName {
  NSData *data = [NSData dataWithContentsOfFile:fileName];
  NSString *str = [[[NSString alloc] initWithData:data
                                         encoding:NSUTF8StringEncoding] autorelease];
  return str;
}

Это прекрасно работает на эмуляторе.Файлы пишутся и читаются как положено.Что мне нужно настроить для чтения / записи файлов на устройствах?

1 Ответ

7 голосов
/ 18 октября 2011

Имя файла должно быть в каталоге документов.У симулятора не будет столько ограничений на то, где он может записывать файлы, чем на устройстве.

Получите каталог документов следующим образом:

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"myfilename.extension"];

Передайте это в свои функции выше, и вывсе должно быть в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...