我正在生成一个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];
}
答案 0 :(得分: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。
答案 1 :(得分:0)
您可能对如何获取文件路径感到困惑:NSSearchPathForDirectoriesInDomains
用于获取(例如)文档目录的绝对路径。另一方面,NSBundle
的{{1}}在应用包装器中搜索具有提供名称的文件。
将两者混合起来并不好。您应该只查看文档目录。