Написание и чтение текстовых файлов на iPhone - PullRequest
6 голосов
/ 11 февраля 2011

На практике я пытаюсь написать приложение, похожее на встроенное приложение заметок.
Но я не могу понять, как сохранить файл и отобразить его в UITableView.
Сейчас у меня есть UITextView, который пользователь может ввести. У меня также есть кнопка save .
Когда пользователь нажимает кнопку сохранения, я хочу сохранить ее,и позже отобразить его в виде таблицы.
Я очень растерялся, поэтому, если вам известны какие-либо соответствующие учебные пособия и т. д., это было бы очень полезно.

Ответы [ 2 ]

23 голосов
/ 11 февраля 2011

Как отметили комментаторы в реальном мире, вы определенно захотите взглянуть на Core Data или какую-то другую стратегию сохранения данных.Если вы решительно настроены использовать это в качестве учебного процесса, то что-то вроде этого должно решить вашу проблему:

- (void)writeStringToFile:(NSString*)aString {

    // Build the path, and create if needed.
    NSString* filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString* fileName = @"myTextFile.txt";
    NSString* fileAtPath = [filePath stringByAppendingPathComponent:fileName];

    if (![[NSFileManager defaultManager] fileExistsAtPath:fileAtPath]) {
        [[NSFileManager defaultManager] createFileAtPath:fileAtPath contents:nil attributes:nil];
    }

    // The main act...
    [[aString dataUsingEncoding:NSUTF8StringEncoding] writeToFile:fileAtPath atomically:NO];
}

- (NSString*)readStringFromFile {

   // Build the path...
   NSString* filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
   NSString* fileName = @"myTextFile.txt";
   NSString* fileAtPath = [filePath stringByAppendingPathComponent:fileName];

   // The main act...
   return [[[NSString alloc] initWithData:[NSData dataWithContentsOfFile:fileAtPath] encoding:NSUTF8StringEncoding] autorelease];
}
1 голос
/ 11 февраля 2011

Самый простой способ сохранить текст - использовать NSUserDefaults.

[[NSUserDefaults standardUserDefaults] setObject:theText forKey:@"SavedTextKey"];

или, если вы хотите иметь имя пользователя для каждого «файла» или иметь возможность иметь несколько файлов

NSMutableDictionary *saveTextDict = [[[[NSUserDefaults standardUserDefaults] objectForKey:@"SavedTextKey"] mutableCopy] autorelease];
if (saveTextDict == nil) {
    saveTextDict = [NSMutableDictionary dictionary];
}

[saveTextDict setObject:theText forKey:fileName];
[[NSUserDefaults standardUserDefaults] setObject:saveTextDict forKey:@SavedTextKey"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...