Читать текстовый файл в папке - PullRequest
1 голос
/ 17 мая 2011

Я разрабатываю приложение для iPhone.

Я знаю, как читать текстовые файлы, размещенные в той же директории, что и проект. Но как мне прочитать файлы в папке, расположенной в том же каталоге, что и проект? Это всегда дает мне пустой экран.

Это работает:

NSString *textUrl = [[NSBundle mainBundle] pathForResource:@"myText" ofType:@"txt"];
textView.text = [NSString stringWithContentsOfFile:textUrl encoding:NSUTF8StringEncoding error:nil];

Но это дает мне пустое представление текста:

NSString *textUrl = [[NSBundle mainBundle] pathForResource:@"myFolder/myText" ofType:@"txt"];
textView.text = [NSString stringWithContentsOfFile:textUrl encoding:NSUTF8StringEncoding error:nil];

Как мне решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 17 мая 2011

Чтение файлов не имеет ничего общего с файловой структурой на жестком диске компьютера разработчика.Это имеет отношение к файловой структуре жесткого диска целевого устройства.Если вы посмотрите на фазы сборки для вашего проекта Xcode стандартного приложения для iOS, вы увидите фазу «Копирование комплекта ресурсов».Этот этап отвечает за копирование ресурсов (например, вашего текстового файла) в каталог документов приложения.

Существует большая вероятность того, что, даже если ваш ресурс находится в другой папке в структуре проекта вашего компьютера разработчика, он все ещекопируется в каталог документов корневого уровня в комплекте приложений.Вы можете получить представление об этом, просмотрев этап сборки Copy Bundle Resources и проверив ресурс, который вы хотите загрузить.Если это не ссылка на папку (синяя, папка Finder-esque, папка), скорее всего, она просто копируется на корневой уровень.

0 голосов
/ 17 мая 2011

NSBundle имеет метод pathForResource: ofType: inDirectory:

NSString *textUrl = [[NSBundle mainBundle] pathForResource:@"myText" ofType:@"txt" inDirectory:@"myFolder"];
textView.text = [NSString stringWithContentsOfFile:textUrl encoding:NSUTF8StringEncoding error:nil];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...