Я делал это раньше, но теперь он не работает для меня. Я делаю:
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 не может его найти, тогда происходит что-то очень странное.