1

UIWebViewでローカルpdfファイルを表示していますが、パスに例外が表示されます ここに私のコードがあります

     NSString*fileName=content_Source;
     NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"pdf"];
     NSURL *url = [NSURL fileURLWithPath:path];
     NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView setScalesPageToFit:YES];
    [webView loadRequest:request]
4

4 に答える 4

6

ファイル名を設定するときは、ファイル名拡張子を使用する必要があります。そのため、Type (ofType:@"pdf" など) と共に設定する場合は、拡張子がファイル名に使用されないようにしてください。

これが私のコードです:

UIWebView *webView = [[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
webView.backgroundColor = [UIColor redColor];
NSString*fileName= @"About_Downloads";
NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"pdf"];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:path isDirectory:NO]];
[webView setScalesPageToFit:YES];
[webView loadRequest:request];
[self.view addSubview:webView];

PDF を表示するためのより良い方法があります。

UIDocumentInteractionController *dc = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:path isDirectory:NO]];
dc.delegate = self; 
[dc presentPreviewAnimated:YES];

そのコードとともにデリゲートを使用して、適切に動作するようにしてください。

(UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller{
    return self;
}
于 2013-04-16T05:46:52.673 に答える
1

指定されたコードの問題で正常に動作していますが、ファイル名でali.pdfのようなタイプも指定していたため、pdfと入力したため、次のようなファイル名を使用すると例外が発生し、正常に動作しました。

 NSString*fileName=@"ali";

それ以外の

    NSString*fileName=@"ali.pdf";
于 2013-04-16T06:23:36.710 に答える
1

最初にその文字列を検証し、次のような URL に割り当てます。

   NSString *strURLPath = [self trimString: path];
   NSURL *url = [NSURL fileURLWithPath:strURLPath];

私の怒鳴る方法を使用してください...

-(NSString*) trimString:(NSString *)theString {
    if (theString != [NSNull null])
        theString = [theString stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
    return theString;
}
于 2013-04-16T06:06:58.030 に答える