0

我正在生成一个 PDF 文件并尝试预览它,如下所示,但 URL 经常返回 NIL,尽管我进行了格式化(这似乎解决了其他所有人对这个常见问题的问题)。我一定错过了更多的东西。有任何想法吗?

    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);    
NSString *docDirectory = [path objectAtIndex:0];

    docDirectory = [docDirectory stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSURL *URL = [[NSBundle mainBundle] URLForResource:docDirectory withExtension:@"pdf"];
if (URL) {
    // Initialize Document Interaction Controller
    self->documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:URL];
    // Configure Document Interaction Controller
    [self->documentInteractionController setDelegate:self];
    // Preview PDF
    [self->documentInteractionController presentPreviewAnimated:YES];
}
4

2 回答 2

1

您的路径创建似乎完全不正常。尝试这样的事情:

NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);    
NSString *docDirectory = [path objectAtIndex:0];
NSString *filename = @"myfile.pdf"; // replace with the actual filename you used
NSString *fullPath = [docDirectory stringByAppendingPathComponent:filename];
NSURL *fullURL = [NSURL fileURLWithPath:fullPath];

在您发布的代码中,您没有提供文件名。您有 Documents 目录和 pdf 扩展名。在这种情况下,不需要对 URL 进行“百分比转义”。

于 2013-04-16T17:51:22.590 回答
0

您可能对如何获取文件的路径感到困惑:NSSearchPathForDirectoriesInDomains用于获取(例如)您的文档目录的绝对路径。另一方面,在应用程序包装器中搜索具有提供名称的文件NSBundleURLForResource:withExtension:

将两者混合使用不会有任何好处。您可能应该只查看文档目录。

于 2013-04-16T17:51:13.493 回答