如何在SwiftUI视图中绑定核心数据实体字符串属性?

时间:2019-11-22 20:23:42

标签: swift core-data swiftui

这是我的SwiftUI视图:

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

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

以下是在Core Data模型文件中设置该实体的方式:

Core Data model setup

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

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

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

我基本上发现了这个问题here。答案是创建扩展。尝试将SwiftUI与Core Data一起使用来做这样的基本操作时,真的需要做这件事吗?

1 个答案:

答案 0 :(得分:0)

以下内容应有所帮助:

TextField("Entity Name", text: Binding($entity.name)!)