Как сохранить NSString в виде файла .txt в каталоге локальных документов моих приложений? - PullRequest
21 голосов
/ 02 февраля 2010

Как сохранить строку NSString в виде файла .txt в каталоге локальных документов моих приложений (UTF-8)?

Ответы [ 5 ]

44 голосов
/ 02 февраля 2010
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory

NSError *error;
BOOL succeed = [myString writeToFile:[documentsDirectory stringByAppendingPathComponent:@"myfile.txt"]
      atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (!succeed){
    // Handle error here
}
3 голосов
/ 02 февраля 2010

Примерно так:

NSString *homeDirectory;
homeDirectory = NSHomeDirectory(); // Get app's home directory - you could check for a folder here too.
BOOL isWriteable = [[NSFileManager defaultManager] isWritableFileAtPath: homeDirectory]; //Check file path is writealbe
// You can now add a file name to your path and the create the initial empty file

[[NSFileManager defaultManager] createFileAtPath:newFilePath contents:nil attributes:nil];

// Then as a you have an NSString you could simple use the writeFile: method
NSString *yourStringOfData;
[yourStringOfData writeToFile: newFilePath atomically: YES];
1 голос
/ 05 декабря 2011

Он как сохранить NSString в папку Documents. Сохранение данных других типов также может быть реализовано таким образом.

- (void)saveStringToDocuments:(NSString *)stringToSave {

 NSString *documentsFolder = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
 NSString *fileName = [NSString stringWithString:@"savedString.txt"];

 NSString *path = [documentsFolder stringByAppendingPathComponent:fileName];

 [[NSFileManager defaultManager] createFileAtPath:path contents:[stringToSave dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];
}
0 голосов
/ 01 августа 2012

Я использовал этот метод для сохранения некоторых данных изображения в кодировке base64 на диск. При открытии текстового файла на моем компьютере у меня возникали проблемы с чтением данных из-за некоторых разрывов строк и автоматического добавления возвратов.

Следующий код исправляет эту проблему:

myString = [myString stringByReplacingOccurrencesOfString:@"\n" withString:@""];
myString = [myString stringByReplacingOccurrencesOfString:@"\r" withString:@""];

// write string to disk
0 голосов
/ 02 февраля 2010

вы можете использовать NSUserDefaults

Сохранение:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];

Чтение:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *myString = [prefs stringForKey:@"keyToLookupString"];
...