gpt4 book ai didi

objective-c - iOS 6.0 Quicklook QLPreviewController 错误 : "Cannot find preview item for loaded proxy"

转载 作者:可可西里 更新时间:2023-11-01 03:40:08 24 4
gpt4 key购买 nike

我的应用程序一直在使用 QLPreviewController 来显示所有类型的文件,在 iOS 5.x 中,它似乎做得很好。

现在,在 iOS 6.0 中,我得到一个错误,它显示了 Controller ,但有一个持续的加载指示器,实际上从未加载任何东西。

日志中的错误是:找不到加载代理的预览项目: - file://localhost/Users/me/Library/Application%20Support/iPhone%20Simulator/6.0/Applications/E6A58F8D-71F3-4C7A-B16E-4BA017E318E5/Documents/temp//Welcome.docx

还有其他人对 iOS 6.0 中的 Quicklook 有这个或其他问题吗?或者有什么尝试的建议?我已经通过 iPhone 和 iPad 尝试过插入 Controller 并呈现它。

编辑:还注意到有问题的 URL(他们说的那个是错误的)不仅以 file://开头,而且以 file://localhost 开头,而原始文件只是以实际路径开头(即:file:///用户)。

最佳答案

经过大量研究并从头开始重新创建一个基本的 QuickLook 查看器后,我发现错误仍然被记录下来,但实际上显示的文档不是我原来的项目.

然后我尝试在呈现之前将 QLPreviewController 放入 NavigationController 中,但最终遇到了同样的问题。在展示它之前,我将 QLPreviewController 包装在 UINavigationController 中,因为这似乎是为 navigationItem 分配自定义按钮的方式。这在 iOS 5.1 中运行良好(如上所述)但显然 iOS 6.0 不喜欢这样。

删除将 QLPreviewController 包装在 UINavigationController 中的额外代码似乎允许显示文档。

被包裹的 Controller 示例:

QLPreviewController* previewer = [[QLPreviewController alloc] init];
previewer.dataSource = self;
previewer.delegate = self;
[previewer setCurrentPreviewItemIndex:0];

UINavigationController* previewNavCtrl = [[UINavigationController alloc] init];
[previewNavCtrl pushViewController:previewer animated:NO];

[self presentModalViewController:previewNavCtrl animated:YES];

更改为:

QLPreviewController* previewer = [[QLPreviewController alloc] init];
previewer.dataSource = self;
previewer.delegate = self;
[previewer setCurrentPreviewItemIndex:0];

[self presentModalViewController:previewer animated:YES];

注意:代理错误似乎仍然出现在日志中

此外:如果没有 NavigationController =/

,任何 UIBarButtonItem 自定义似乎都不再有效

更新:我发现使用 fileURLWithpath 为 previewItemAtIndex 生成 fileURL 使原来的错误消失了。但是,同样的问题仍然出现在文档无法加载的地方。

一个新错误(我也看到其他人也有)是:

Couldn't issue file extension for path: /Users/me/Library/Application%20Support/iPhone%20Simulator/6.0/Applications/339DDF48-AF93-41B5-B81E-A39440A131C6/Documents/temp/Welcome1.docx

最终更新:好的,扩展问题/错误是因为当 [NSURL fileURLWithPath] 必须已经处理好了。一旦我删除了它,它就起作用了,我现在使用的是 iOS 6 耶!所以真正的问题与 UINavigationController 无关,而实际上是通过 previewItemAtIndex 传递的文件 URL。

关于objective-c - iOS 6.0 Quicklook QLPreviewController 错误 : "Cannot find preview item for loaded proxy",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12712890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com