在我正在使用的iPad应用程序中,我正在生成应该使用UIDocumentInteractionController
保存或共享的png图像。
每个选项都可以正常工作,但只有一个。如果png文件大于20MB左右,则AirDrop功能会失败,并且UIDocumentInteractionController
弹出窗口会因以下错误而被iOS终止:
viewServiceDidTerminateWithError:: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3 "(null)" UserInfo={Message=Service Connection Interrupted}
该应用程序继续运行,我仍然可以使用它。
在这种情况下,png文件很大,所有其他“共享/打开...”选项都可以正常工作。仅AirDrop共享功能会失败。
点击共享的人/设备后,它几乎立即发生。因此,它不认为这可能是内存问题。当我正在开发具有6GB RAM的2018 iPad Pro时,我也对此不敢相信。
在我的测试中,大多数生成的文件大约为100MB,与我们可以使用AirDrop从Apple应用程序传输的文件相比,这并不算太大。例如,我已经使用AirDrop从Files
应用程序传输了大于300MB的文件。
请注意,我不知道正确的极限值,但我感觉到(!)在20MB区域内。我已经尝试过将文件大小最大为10MB的文件毫无问题。
我也尝试使用UIActivityViewController
并获得了相同的行为。我尝试了三种设置项目共享的方法:
Data
对象中,并将此数据对象设置为项目UIImage
中,并将此图像设置为项目这是我用来显示documentController的代码:
func presentDocumentInteractionController(for fileUrl: URL) {
documentController = UIDocumentInteractionController(url: fileUrl)
documentController!.delegate = self
documentController!.uti = String(kUTTypePNG)
documentController!.name = fileUrl.lastPathComponent
documentController!.presentOptionsMenu(from: shareBarButtonItem, animated: true)
}
documentController
var是我的类的成员,以避免在函数结束时将其删除,然后避免应用在nil值时崩溃。
除了向苹果公司提交雷达申请外,我什么都没有。 有人经历过这种行为吗?