我试图在UIWebview
中显示pdf,但出现错误。谁能帮我解决为什么它不起作用?错误是:
*由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'*-[NSURL initFileURLWithPath:]:零字符串参数'
每个字符串都是正确的,除了path似乎长度为0之外,我不确定为什么。
NSArray *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [docPath objectAtIndex:0];
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(10, 10, 700, 500)];
NSString *path = [[NSBundle mainBundle] pathForResource:@"pdfDoc" ofType:@"pdf" inDirectory:documentDirectory];
NSURL *targetURL = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[webView loadRequest:request];
[self.view addSubview:webView];
最佳答案
您不能这样做:
NSString *path = [[NSBundle mainBundle] pathForResource:@"pdfDoc" ofType:@"pdf" inDirectory:documentDirectory];
因为
NSBundle
只能获取分发包中文件的路径,而不能获取documents目录中的文件路径(因此它返回nil
并出现错误)。如果文件在捆绑软件中,则仅按名称搜索。如果文件在documents文件夹中,请获取该文件夹的路径并附加名称(
stringByAppendingPathComponent:
)。然后使用该路径创建文件URL。关于ios - 在UIWebview中打开pdf时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21385539/