SwiftUI核心数据在带有NavigationView的MacOS应用程序上崩溃

SwiftUI核心数据在带有NavigationView的MacOS应用程序上崩溃,macos,core-data,swiftui,Macos,Core Data,Swiftui,我已经编写了一个小应用程序,它使用核心数据和SwiftUI为旧的冒险游戏制作了一个基本的记事本应用程序。我在主/详细配置中使用NavigationView,其中主列表是注释所针对的人名列表(这是为Tex Murphy等游戏设计的),单击它们会导致详细视图显示一些文本字段以更改详细信息 我遇到的错误是,如果我有一个影响此人姓名的文本字段。有时,当我更改名称时,它会导致应用程序崩溃:线程1:EXC_BAD_指令(代码=EXC_i386_INVOP,子代码=0x0)。这场崩溃是相对随机的,大约有10%

我已经编写了一个小应用程序,它使用核心数据和SwiftUI为旧的冒险游戏制作了一个基本的记事本应用程序。我在主/详细配置中使用NavigationView,其中主列表是注释所针对的人名列表(这是为Tex Murphy等游戏设计的),单击它们会导致详细视图显示一些文本字段以更改详细信息

我遇到的错误是,如果我有一个影响此人姓名的文本字段。有时,当我更改名称时,它会导致应用程序崩溃:线程1:EXC_BAD_指令(代码=EXC_i386_INVOP,子代码=0x0)。这场崩溃是相对随机的,大约有10%的时间会发生。如果我让主视图显示除人名之外的任何其他文本,那么它不会崩溃。确保仅在主线程上更改名称不会产生任何影响,因此我认为这不是线程安全问题。不幸的是,调试器在这里不是特别有用,因为当它崩溃时,我无法隔离它

有什么想法吗

以下是更改此人姓名的代码:

                    TextField("Enter name", text: $name) {
                        self.person.name = self.name
                        do {
                            try self.managedObjectContext.save()
                        } catch {
                            print(error)
                        }
                    }

其中person是通过navigationView发送的person对象,name是一个状态值(因为我不知道如何让textfield直接更改person的名称)

您使用哪个版本的Xcode?新11.3版本中的NavigationView存在一些问题(今天有一些问题)。如果您使用最新版本,m.b.最好只在主视图中尝试您的代码(不带NavigationView),并检查错误以排除NavigationView的影响奇怪的是,当我升级到最新版本时,这已经停止崩溃。相反,它给出了一个错误(稍后我在笔记本电脑上发布),但仍在继续运行。