- Xcode 14.0(14 A309),iOS部署目标15.0*
- 主导航视图#1 >导航视图#2 >导航视图#3
- SwiftUI View FileDownloaderView,带有附加到VStack的.fileImporter()
- FileDownloaderView是NavigationView #3的子视图
当我使用fileImporter选择文件或取消fileImporter时,视图将返回navigationView #1而不是navigationView #3,并显示以下日志消息:
The view service did terminate with error:
Error Domain=_UIViewServiceErrorDomain Code=1 "(null)"
UserInfo={Terminated=disconnect method}
字符串
它以前工作得很好,但我可能在代码的其他地方做了一些更改,导致这种断开连接或在其中一个navigationViews中为nil。我无法找到错误,也无法确定它失败的确切位置/时刻。
对于改进调试或理解什么会触发这种类型的错误有什么帮助吗?
谢谢菲利普
1条答案
按热度按时间nsc4cvqm1#
我在使用iOS 17.2作为部署目标的XCode 15.1中得到了完全相同的错误。下面所有的假设都是修改了“自定义iOS目标属性”,以具有值为“TRUE”的条目“支持文档浏览器”。重新安装XCode并没有为我修复这个问题。
下面的代码足以重现错误(取消文件导入和选择文件时):
字符串
即使抛出错误,也会打印“importing”,这意味着无论哪种情况,都正确调用了fileImporter的onCompletion回调。而且在实践中我发现,实际导入是否成功与此错误是否显示完全无关。
有一次,我的导入失败,因为我试图从应用程序文档文件夹之外导入文件(即文件应用程序或FileImporter菜单中的“On My iPhone”下显示的文件夹名称与我的应用程序类似)。在导入之前手动将其复制到该文件夹允许我导入它。在这两种情况下,调试器中仍然显示上述错误,并且没有抛出其他错误。
在另一种情况下,我的导入失败了,因为我试图使用
decode
而不是decodeIfPresent
解码一个具有NULL值(即可选属性)的JSON文件。无论导入是否有效,上述错误都会显示在调试器中,并且它是唯一显示的错误!