SwiftUI预览画布因核心数据而崩溃

时间:2020-06-10 18:46:16

标签: ios swift core-data swiftui

这可能是一个非常愚蠢的问题,请提前对不起。

我正在使用核心数据和SwiftUI,并且我尝试使用一个简单的应用程序来存储笔记,但似乎无法使预览正常工作。该应用在模拟器上运行良好,但在预览画布上崩溃。我已经阅读了很多Reddit和StackOverflow问题,但是它们都与我的问题无关。

我已经将context变量传递给了我的视图,并且我100%确信不是由这个原因引起的,因为崩溃报告显示为Persistent store migration failed, missing mapping model。我知道它要求一个迁移,但是我没有更改任何数据模型(这是一个全新的项目),并且该应用在模拟器上的运行情况非常好,因此我不确定这是否真的是崩溃的原因。

我能想到的是,SwiftUI的预览画布可能与其他项目共享同一数据库,并且发生冲突(这很有意义,因为我有其他也使用核心数据的项目也在SwiftUI中制作并共享一些实体的名称。)

在使用Realm时,我也遇到了同样的问题,在使用预览画布时,我通过删除Realm数据库文件解决了这些问题,因此每次运行都会清空数据库,因此我没有任何问题。 这是一个好方法吗?我应该这样做吗?

我将展示我的代码,但实际上它只是一个ForEach,它会循环访问名为Note的实体。

2 个答案:

答案 0 :(得分:3)

尝试从此处删除预览画布

~/Library/Developer/Xcode/UserData/Previews/Simulator Devices/

然后在命令行中运行以下

killall -9 com.apple.CoreSimulator.CoreSimulatorService

最终重启xCode

答案 1 :(得分:1)

如果您使用了模拟器,您还需要在 /Users/YOURNAME/Library/Application Support 中删除模型的商店