这是我的SwiftUI视图:
struct EditEntity: View {
@State var entity: Entity
var body: some View {
Form {
TextField("Entity Name", text: $entity.name)
}
}
}
Entity
是Core Data使用代码生成为我创建的对象。
以下是在Core Data模型文件中设置该实体的方式:
而我遇到的问题是,当SwiftUI需要一个$entity.name
对象时,Binding<String?>
是一个Binding<String>
对象。所以我得到这个编译错误:
Cannot convert value of type 'Binding<String?>' to expected argument type 'Binding<String>'
那么有谁知道最佳实践是什么?是否应该在视图类中为属性创建单独的非可选变量?从我的屏幕快照中可以看出,我将属性设置为非可选,希望它是一个非可选的字符串,但显然不起作用。
我基本上发现了这个问题here。答案是创建扩展。尝试将SwiftUI与Core Data一起使用来做这样的基本操作时,真的需要做这件事吗?
答案 0 :(得分:0)
以下内容应有所帮助:
TextField("Entity Name", text: Binding($entity.name)!)