当我尝试在画布中预览我的一个视图时,我一直收到以下错误:
PreviewUpdateTimedOutError:更新花费了超过5秒钟
我所有其他的视图都可以正常加载。
这是为什么,我该如何解决?
我正在使用 Xcode 11.4(公共发行版)中的 SwiftUI。
当我尝试在画布中预览我的一个视图时,我一直收到以下错误:
PreviewUpdateTimedOutError:更新花费了超过5秒钟
我所有其他的视图都可以正常加载。
这是为什么,我该如何解决?
我正在使用 Xcode 11.4(公共发行版)中的 SwiftUI。
我停止使用模拟器,选择“任何iOS设备”解决了问题。
有时候,显示的错误并不是真正的错误。
对我来说,这是因为我漏掉了.environmentObject(...)
。
PreviewUpdateTimedOutError:Updating took more than 5 seconds
通常意味着您的应用程序崩溃,因此更新预览失败。不幸的是,这个无用的信息掩盖了崩溃的真正原因(为什么苹果会这样做超出了我的理解)。要找到真正的原因,您需要:
Diagnostics
Generate Report
>Reveal in Finder
CrashLogs
的文件夹,其中包含您的应用程序的崩溃日志,包括错误消息和堆栈跟踪。这应该有助于您解决导致预览中断的实际错误。CrashLogs
。重试预览并生成另一个报告可以解决此问题。整个错误报告过程似乎对于预览而言相当不稳定,很遗憾。PreviewProvider
被标记为 private
。只需将其改为 internal
或移除 private
访问修饰符即可。private /* <- remove */ struct YourView_Previews: PreviewProvider {
static var previews: some View {
// Your previews
}
}
我使用的是13.2.1版本(13C100)。 我已经使用清理(Shift + ⌘ + K)和构建(⌘ + B)项目。 但问题仍然存在。
然后,只需重新启动Xcode。问题就解决了。
这些建议都没有帮助到我,但我发现你不能完全依赖于成功的构建来解决所有问题。在我的情况下,我将'.modifier(modifier:)'错误地输入为'modifier(modifier:)'。我的代码构建成功了,但在添加修饰符之前,我的预览无法正常工作。
对我来说,这个问题与在预览时找不到元素的强制解包相关。
注意:始终检查诊断报告。问题将在终止原因后的顶部部分。