NSURL总是为零编码
问题描述:
我正在生成一个PDF文件,并试图预览它,如下所示,但URL通常返回NIL,尽管我的格式(这似乎解决了这个常见问题的其他人的问题)。我一定会错过更多的东西。有任何想法吗?NSURL总是为零编码
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];
}
答
您的路径创建似乎全部出了问题。尝试是这样的:
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。
答
你可能会感到困惑的是如何获取到你的文件的路径:NSSearchPathForDirectoriesInDomains
用来去(例如)文档目录的绝对路径。 NSBundle
的URLForResource:withExtension:
另一方面使用提供的名称在应用程序包装器中搜索文件。
把两者混合在一起不会有好处。您应该只需查看文档目录即可。