使用NavigationView的MacOS应用上的SwiftUI核心数据崩溃

时间:2019-12-11 11:22:14

标签: macos core-data swiftui

我编写了一个小应用程序,该程序使用Core Data和SwiftUI一起为旧的冒险游戏制作了基本的笔记应用程序。我在主/详细配置中使用了NavigationView,其中主列表是注释所针对的人物姓名列表(这是为Tex Murphy等游戏设计的),然后单击它们会导致详细信息视图显示一些textFields更改详细信息。

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

有什么想法吗?

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

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

人员是通过NavigationView发送的人员对象,名称是状态值(因为我不确定如何使文本字段直接更改人员的名称)

0 个答案:

没有答案