1

你好我是 iOS 的初学者在我的一个活动中我想问.....我使用 WebView 显示 pdf ......在屏幕上并保存这个 Pdf 然后编写这种类型的代码...... .

 NSArray  *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
 NSString *documentsDir = [paths objectAtIndex:0];
 NSString *pdfFilePath =[documentsDir stringByAppendingPathComponent:@"myPDF.pdf"];// your yourPdfFile file here
 NSLog(@"pdf file %@",pdfFilePath);
 NSURL *url = [NSURL fileURLWithPath:pdfFilePath];
 UIDocumentInteractionController *docController = [UIDocumentInteractionController interactionControllerWithURL:url];

 docController.delegate = self;
 [docController presentOpenInMenuFromRect:CGRextZero inView:self.view  animated:YES];

当我们在模拟器上运行这段代码(使用 Xcode)然后显示路径,我在文档文件夹中成功获得了这个 Pdf 文件......但是当我们在 iPhone 设备上运行这段代码时,我得到了这种类型的路径...... ...

/var/mobile/Applications/D33A80AA-C0AD-4211-ADE3-4906372CDA40/Documents/myPDF.pdf

所以我不知道我的 Pdf 在 iPhone 设备中的位置以及如何获取此 Pdf 并打开......当我想要......

4

1 回答 1

0

如果您的 PDF 在文档文件夹中,您应该像这样检索路径:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;

不要尝试使用与在模拟器中看到的绝对路径相关的任何内容。

您可能无法在模拟器上找到文件的设备上找到文件的一个原因是模拟器不区分大小写,但设备区分大小写,因此请确保您的名称完全匹配。

但!请注意,Documents 文件夹现在可能不是您想要存储内容的地方 - 除非您确定要使用 iCloud 备份它们。文件系统编程指南说仅将文档用于应用程序无法重新创建的文档,即“关键”文档。很多时候,将它们存储在用户库文件夹中是有意义的。在这种情况下,NSSearchPathForDirectoriesInDomains 的参数将是:

(NSLibraryDirectory, NSUserDomainMask, YES)
于 2013-08-02T05:32:05.597 回答