2012-06-30 3 views
0

Я пытаюсь загрузить локальный файл pdf, используя следующий код для проекта Cocoa (не проект iOS).Не удается найти файл в формате pdf с помощью webView

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"testPDFFile" 
                ofType:@"pdf" 
               inDirectory:@""]; 
NSURL* fileURL = [NSURL fileURLWithPath:filePath]; 
NSURLRequest* request = [NSURLRequest requestWithURL:fileURL]; 
[[webView mainFrame] loadRequest:request]; 

Я вижу, что объект WebView загружается, но документ не отображается. Похоже, что выход правильно подключен.

Я попытался переместить файл в разные места в каталоге и попытался указать каталог в параметре inDirectory.

В настоящее время файл находится в каталоге «Поддерживаемые файлы». Если я изменяю inDirectory для чтения ... inDirectory: @ "Поддержка файлов"]; Я получаю сообщение об ошибке ... "[NSURL initFileURLWithPath:]: nil string parameter"

Как я могу заставить этот оператор найти и показать файл?

ответ

1

Try:

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"testPDFFile" 
                ofType:@"pdf"]; 

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

+0

Спасибо, я работал с этим и до сих пор не работаю. Я напечатал строку, используя NSLog, и ищет файл, который находится в каталоге myApp/Contents/Resources/testPDFFile.pdf. В моем браузере файлов нет каталога содержимого в myApp. – K17

+0

@ K17: Это проблема, потому что пакет приложений Mac должен иметь каталог Contents. Этот каталог должен содержать файл Info.plist, каталог MacOS, содержащий исполняемый файл, и каталог ресурсов. –

+1

Более современный метод ['URLForResource: withExtension:'] (http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSBundle_Class/Reference/Reference.html#//apple_ref/occ/instm/NSBundle/URLForResource: withExtension :) (или ['URLForResource: withExtension: подкаталог:'] (http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSBundle_Class /Reference/Reference.html#//apple_ref/occ/instm/NSBundle/URLForResource:withExtension:subdirectory :)). –