UIDocumentInteractionController 在 Mac 催化剂中不可用

问题描述

执行以下代码时应用程序可能会崩溃。

代码 self.documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:targetURL];

崩溃日志: 由于未捕获的异常“NSGenericException”而终止应用程序,原因:“UIDocumentInteractionController 不可用”

是否有针对此问题的解决方案或任何替代课程?

解决方法

不管文档怎么说,它在 Catalyst 中不可用。

您可以使用 AppKit 替代品 (QLPreviewPanel) 进行探索,但您必须进行一些黑客攻击才能使其从 Catalyst 应用程序中运行: https://stackoverflow.com/a/32814132/1601849

,

如果你想保持与 OSX 10.5 的兼容性,你可以做这个检查:

if UIDevice.current.systemName == "Mac OS X" {
   let version = Int (UIDevice.current.systemVersion.prefix (2)) ?? 10
   if version > 10 {
      self.documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:targetURL];
   } else {
      //do something
   }
} else {
   self.documentInteractionController =[UIDocumentInteractionController interactionControllerWithURL:targetURL];


}