Xcode 14.0 (14A309)、iOS 部署目标 15.0
当我使用 fileImporter 选择文件或取消 fileImporter 时,视图返回到 navigationView #1 而不是 navigationView #3,并显示以下日志消息:
The view service did terminate with error:
Error Domain=_UIViewServiceErrorDomain Code=1 "(null)"
UserInfo={Terminated=disconnect method}
Run Code Online (Sandbox Code Playgroud)
它以前工作得很好,但我可能在代码的其他地方做了一些更改,导致这种断开连接或导航视图之一中的某些内容为零。我无法找到错误,也无法确定错误的确切位置/时刻。
对改进调试或了解什么可能触发此类错误有任何帮助吗?
谢谢。菲利普.
我在 XCode 15.1 中以 iOS 17.2 作为部署目标时遇到完全相同的错误。以下所有内容均假设已修改“自定义 iOS 目标属性”以具有值为“TRUE”的条目“支持文档浏览器”。重新安装 XCode 并没有为我解决这个问题。
以下内容足以重现错误(无论是取消文件导入还是选择文件时):
struct ContentView: View {
@State private var isImporting = false
var body: some View {
VStack {
Button("Import") {
isImporting = true
}
}
.fileImporter(isPresented: $isImporting, allowedContentTypes: [.json]) { result in
print("importing")
}
}
}
Run Code Online (Sandbox Code Playgroud)
即使抛出错误,也会打印“正在导入”,这意味着在任何一种情况下都会正确调用 fileImporter 的 onCompletion 回调。另外在实践中我发现导入是否真正成功与是否显示此错误完全无关。
在一种情况下,我的导入失败,因为我尝试从应用程序文档文件夹外部导入文件(即,文件应用程序或 FileImporter 菜单中的“在我的 iPhone 上”下显示的名称类似于我的应用程序的文件夹)。在导入之前手动将其复制到该文件夹允许我导入它。在这两种情况下,上述错误仍然显示在调试器中,并且没有引发其他错误。
在另一种情况下,我的导入失败,因为我尝试使用 NULL 值(即可选属性)解码 JSON 文件,decode而不是使用decodeIfPresent. 无论导入是否成功,调试器中都会显示上述错误,而且这是唯一显示的错误!
| 归档时间: |
|
| 查看次数: |
954 次 |
| 最近记录: |