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