【发布时间】:2017-10-29 03:26:57
【问题描述】:
找到答案后发帖
在“橡皮鸭调试”这个答案一堆之后,我终于在一个对我来说似乎无关的问题上找到了正确答案。我认为这个问题(及其答案)仍然相关,所以我发布这个问题并将发布我自己的答案,希望能帮助像我这样的其他人。
我正在我的 iOS 应用程序中创建一个 PDF,我希望允许用户导出。出于此测试的目的,我正在尝试将其保存到物理设备上的个人 Dropbox 中。
我已打开 iTunes 文件共享,我可以验证 PDF 文件是否正确生成,当我将它从我的设备(运行 iOS 11 的 iPad Pro Gen.2)复制出来时,我可以打开 PDF 并它具有预期的内容和外观。
我能够正确显示文档弹出窗口,并且可以通过以下方式共享:
- 第 1 行:空投
- 第 2 行:消息、邮件、添加到笔记、(Facebook) Messenger 等。
- 第 3 行:复制、打印、保存到文件、保存到 Dropbox 等。
无论我尝试选择什么(保存到 Dropbox 是我想要解决的问题,但这个问题似乎很普遍),它都失败了。值得注意的是,当我单击保存到 Dropbox 时,我确实看到了 Dropbox 面板显示,但是在保存到 Dropbox 模式的顶部立即有一个模式显示,“发生了未知错误。”
我试图环顾四周,看看如何获得有关此错误的更多信息,但我很困惑。我不确定它是否相关,但我在控制台中收到此消息:
[AXRun-PID] Client requesting unsuspension of PID:813 Name:<redacted>
试图用谷歌搜索该错误已被证明是徒劳的。
这是我生成 PDF 并显示菜单的代码:
#pragma mark • Sharing Methods
- (void)showShareMenu {
NSArray *bookList = [BookManager bookList];
NSURL *pdfUrl = [PdfGenerator generatePdfFromBooks:bookList];
UIDocumentInteractionController *vc = [[UIDocumentInteractionController alloc] init];
vc.name = @"Booklet.pdf";
vc.URL = pdfUrl;
vc.UTI = @"com.adobe.pdf";
[vc presentOptionsMenuFromBarButtonItem:self.navigationItem.leftBarButtonItem animated:YES];
}
我试过用UIDocumentInteractionController *vc = [UIDocumentInteractionController interactionControllerWithURL:pdfUrl]; 代替上面的那个,但结果是一样的。
我尝试让self 成为vc 的代表,然后尝试实现以下方法:
- (void)documentInteractionController:(UIDocumentInteractionController *)controller
willBeginSendingToApplication:(nullable NSString *)application;
- (void)documentInteractionController:(UIDocumentInteractionController *)controller
didEndSendingToApplication:(nullable NSString *)application;
这些方法都没有触发过。
有趣的是,虽然我认为我已根据阅读内容正确提供了文件名,但保存到 Dropbox 模式中 File 教科书中的名称是当前时间戳(例如,File Oct 28, 11 12 22 PM)。 Dropbox 模态一直保持到我在“发生未知错误”模态上单击“确定”,然后立即消失。
似乎我没有提供正确的信息,但我不确定如何提供。似乎应该有一个委托方法来向我指示错误,但我在文档中没有看到类似的东西。 (已经晚了,我已经看了好几个小时了,包括阅读了几个相关的教程,所以我可能错过了一些明显的东西。)
【问题讨论】:
标签: ios pdf uidocumentinteraction