我应该如何绑定到 SwiftUI 视图中的核心数据实体字符串属性?

Jak*_*arr 6 core-data swift swiftui

这是我的 SwiftUI 视图:

struct EditEntity: View {
    @State var entity: Entity
    var body: some View {
        Form {
            TextField("Entity Name", text: $entity.name)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Entity是 Core Data 使用代码生成为我创建的对象。

以下是该实体在核心数据模型文件中的设置方式:

核心数据模型设置

我遇到的问题是,当 SwiftUI 想要一个对象时,它$entity.name是一个对象。所以我收到这个编译错误:Binding<String?>Binding<String>

Cannot convert value of type 'Binding<String?>' to expected argument type 'Binding<String>'

那么有人知道最佳实践是什么吗?我应该在视图类中为该属性创建一个单独的非可选变量吗?从我的屏幕截图中可以看出,我将属性设置为不可选,希望它是一个非可选字符串,但显然这不起作用。

我发现基本上这个问题在这里问。答案是创建一个扩展。当尝试将 SwiftUI 与 Core Data 一起使用来完成如此基本的事情时,这真的是需要做的吗?

Asp*_*eri 4

以下内容应该有所帮助:

TextField("Entity Name", text: Binding($entity.name)!)
Run Code Online (Sandbox Code Playgroud)