Цель C: Чтение текстовых файлов

Я делал это раньше, но теперь он не работает для меня. Я делаю:

NSString* path = [[NSBundle mainBundle] pathForResource:@"test" 
                                                 ofType:@"txt"];
NSString* content = [NSString stringWithContentsOfFile:path
                                              encoding:NSUTF8StringEncoding
                                                 error:NULL];
NSLog(@"%@",path);

и он возвращает (null) каждый раз, когда я NSLog путь и содержимое. Может ли кто-нибудь увидеть, что я делаю неправильно?

Ответ 1

содержимое будет nil (которое регистрируется как "(null)" ), если вы передадите ему путь, который он не может открыть. Поэтому единственная проблема заключается в том, что соответствующий экземпляр NSBundle не может найти test.txt в части ресурсов вашего пакета приложений.

Вы должны:

  • проверить, что файл находится в вашем проекте Xcode; и, если это так,
  • убедитесь, что он включен в фазу "Копировать ресурсы Bundle" под выбранной вами целевой (в дереве проекта слева в обычном макете окна Xcode), и если это так,
  • загляните внутрь сгенерированного пакета приложений (найдите свой продукт, щелкните правой кнопкой мыши, выберите "Reveal in Finder", из Finder щелкните правой кнопкой мыши на приложении и выберите "Показать содержимое пакета", а затем найдите свой файл там), чтобы убедиться что он там.

Если он скопирован, но соответствующий экземпляр NSBundle не может его найти, тогда происходит что-то очень странное.