2015-08-22 2 views
0
NSURL *url =[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"index" ofType:@"html"inDirectory:@"www"]]; 

Давая мне ошибкуiOS: [NSBundle pathForResource: ofType: inDirectory] return nil?

[NSURL initFileURLWithPath:]: nil string parameter' 

Я уже скопировать папку «WWW» в моем проекте, но дает мне ошибку, и если я не пишу inDirectory: @ «WWW», то он будет идти по пути но не показывает точно страницу, которую я хочу показать.

+0

Является ли папка «www» в проекте Xcode синим или желтым? – rmaddy

+0

желтый цвет в xcode – vp2698

+0

Затем удалите часть 'inDirectory:' часть вызова метода. Это будет работать только с синими папками, а не с желтыми. – rmaddy

ответ

1

Когда вы добавляете ресурсы в свой проект, все они копируются в корень вашего пакета приложений (по умолчанию). Любые желтые подпапки, которые вы можете настроить в своем проекте, не влияют на то, как ресурсы будут организованы в реальном приложении.

Единственный способ в конечном итоге с фактическими папками в конечном пакете ресурсов приложения - иметь синие папки в вашем проекте Xcode.

Желтые папки - это просто «группы».

Синие папки - это «ссылки на папки». Они создаются, когда вы выбираете «Добавить файлы в {Название проекта ... ...» и выбираете «Создать ссылки на папки») в диалоговом окне добавления файла (в отличие от опции «Создать группы», которая приводит к желтым папкам группы) ,

Любые ссылки на синие папки и их содержимое помещаются в комплект приложения в той же структуре.

Итак, для вашего случая вам нужно добавить папку «www» в качестве ссылки на папку вместо обычной группы. Как только это будет сделано, ваш исходный код с параметром inDirectory: будет работать по желанию.

Если у вас есть какие-либо проблемы, вы всегда можете заглянуть внутрь папки .app встроенного приложения, чтобы проверить, была ли создана структура каталогов.

+0

Спасибо @rmaddy – vp2698

Смежные вопросы