Чтение текстового файла в папке с документами - Iphone SDK - PullRequest
5 голосов
/ 25 апреля 2010

У меня есть этот код ниже:

    NSString *fileName = [[NSUserDefaults standardUserDefaults] objectForKey:@"recentDownload"];
    NSString *fullPath = [NSBundle pathForResource:fileName ofType:@"txt" inDirectory:[NSHomeDirectory() stringByAppendingString:@"/Documents/"]];
    NSError *error = nil;

    [textViewerDownload setText:[NSString stringWithContentsOfFile:fullPath encoding: NSUTF8StringEncoding error:&error]];
  • textviewerdownload - это textview, отображающий текст из файла. Фактическое имя файла сохраняется в NSUserDefault с именем recentDownload.

  • Когда я создаю это, я нажимаю button, под которым оно находится, и мое приложение crashes.

  • Что-то не так с синтаксисом или просто с ошибкой?

Ответы [ 3 ]

9 голосов
/ 26 апреля 2010

Класс NSBundle используется для поиска вещей в пакете приложений, но каталог Documents находится за пределами пакета, поэтому способ создания пути не будет работать. Попробуйте вместо этого:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                     NSUserDomainMask,
                                                     YES);

NSString *fullPath = [[paths lastObject] stringByAppendingPathComponent:@"recentDownload.txt"]; 
6 голосов
/ 09 декабря 2010
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSString *myPathDocs =  [documentsDirectory stringByAppendingPathComponent:@"myfile.txt"];

    if (![[NSFileManager defaultManager] fileExistsAtPath:myPathDocs])
    {
        NSString *myPathInfo = [[NSBundle mainBundle] pathForResource:@"myfile" ofType:@"txt"];
        NSFileManager *fileManager = [NSFileManager defaultManager];
        [fileManager copyItemAtPath:myPathInfo toPath:myPathDocs error:NULL];
    }       

    //Load from File
NSString *myString = [[NSString alloc] initWithContentsOfFile:myPathDocs encoding:NSUTF8StringEncoding error:NULL];

Это сработало для меня

В любом случае, спасибо всем ..

2 голосов
/ 16 мая 2011

Для чтения / записи из текстового файла отметьте это url .

...