Сохранить данные в текстовом формате - PullRequest
0 голосов
/ 08 марта 2012

Я получил приложение IOS.Мне нужно хранить некоторые данные.Я попытался сделать это в TXT-файле следующим образом:

[toFile writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL];

Но когда я закрываю контроллер представления, где я сохраняю данные, содержимое файла снова становится нулевым.Почему?

Ответы [ 3 ]

3 голосов
/ 08 марта 2012

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

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"user.txt"];

Также ознакомьтесь с Правилами хранения iOS * (требуется регистрация):

  1. Только документы и другие данные, созданные пользователем,или которые не могут быть воссозданы вашим приложением иным образом, должны храниться в каталоге / Documents и автоматически сохраняться в iCloud.

Я думаю, что учебники могут помочь вам понять, какработа с каталогами и файлами на iOS:

0 голосов
/ 08 марта 2012

Передайте параметр NSError * вашему writeToFile, и когда writeToFile вернет NO (что означает, что он не прошел), вы можете распечатать информацию NSError, чтобы помочь вам выяснить, что пошло не так.

Например:

NSError * error = nil;
BOOL success;

success = [toFile writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];

if (success == NO)
{
    NSLog( @"error in writeToFile - %@", [error localizedDescription] );
}
0 голосов
/ 08 марта 2012

Бьюсь об заклад, вы пытаетесь написать в комплекте вашего приложения.Ты не можешьВы должны написать либо в NSDocumentsDirectory, либо в [песочнице приложения] /Library.

...