2014-02-05 5 views
0

Недавно я завершил приложение-проект, который в основном состоял из html-файлов в webView.Nil return value from fileURLWithPath

Теперь я создал еще один проект и скопировал соответствующие кодовые фрагменты, но приложение падает с этим сообщением об ошибке:

* Нагрузочное приложение из-за неперехваченное исключение «NSInvalidArgumentException», причиной: «* - [NSURL initFileURLWithPath]: ноль параметр строка»

это код:

NSString *path01 = [[NSBundle mainBundle] pathForResource:@"01-a" ofType:@"html" inDirectory:@"htdocs"]; 
NSURL *url01 = [NSURL fileURLWithPath:path01]; 
NSURLRequest *request01 = [NSURLRequest requestWithURL:url01]; 
[webView01 loadRequest:request01]; 

Я предполагаю, что проблема в файловой ссылке, но все на своем месте, но результатом всегда является NIL.

Я искал проблему, кажется, что что-то не так с тем, как я импортировал файлы в xcode, но я не могу исправить это. Есть ли простой трюк, чтобы заставить xcode правильно импортировать папку «htdocs»?

заранее спасибо ...

+0

Xcode ничего не возвращает; это IDE, а не метод. Это не связано с Xcode. –

+0

[related] (http://stackoverflow.com/questions/6263289/accesing-a-file-using-nsbundle-mainbundle-pathforresource-ofypeindirectory)? – glasz

+0

Да, правильно, но поскольку проблема возникает в xcode и, очевидно, что-то не так с ссылкой в ​​xcode, тег был прав. – brunnenschwimmer

ответ

0

Убедитесь, что файл 01-a.html копируется в приложение пачке. Это может быть достигнуто с помощью фазы копирования файлов/копирования в комплекте при создании приложения. Сбой указывает, что файл отсутствует в пакете и, следовательно, возвращается значение nil. В таких случаях вы должны делать проверки на нуль.

+1

Черт возьми, это сработало. Благодарю. Но я до сих пор не понимаю, что произошло, потому что я сделал то же самое раньше (по крайней мере 2 раза). – brunnenschwimmer

+0

Возможно, чистая сборка уже помогла бы тогда. Иногда происходит вуду. – Volker

0
NSURL *url01 = [NSURL fileURLWithPath:path01]; 

Единственный параметр path01, так что давайте посмотрим, где это происходит от

NSString *path01 = [[NSBundle mainBundle] pathForResource:@"01-a" ofType:@"html" inDirectory:@"htdocs"]; 

Это означает, что вы не имеете файл htdocs/01-a.html в ваших ресурсов.

Обратите внимание, что xcode выравнивает структуру ресурсов, поэтому вы, вероятно, просто хотите отбросить аргумент inDirectory.

+0

Спасибо, была некоторая путаница при импорте каталога, она не была скопирована в комплект. Сейчас это прекрасно. – brunnenschwimmer