如何将textfield文本绑定到coredata属性



我有一个名为" fruit "的coredata实体。我有一个名为'fruitName'的水果属性,类型为String。我想在TextField()中显示这个属性,而不仅仅是在Text()中显示,这样用户可以更容易地编辑这个属性。我在将TextField中的text参数绑定到fruit.fruitName时遇到了问题。

代码如下:

import CoreData
struct FruitRowView: View {

//instance of core data model
@ObservedObject var vm: CoreDataViewModel

var fruit: FruitEntity

var body: some View {
TextField("Enter fruit name", text: $fruit.name)
}
}

当我尝试构建时,我得到的错误是:'Cannot find '$fruit' in scope',我认为这意味着我不能以这种方式绑定变量。我相信有一个简单的方法来解决这个问题,这样我就可以在TextField中显示这个属性,但我还没能弄清楚。

To "…将文本字段文本绑定到coredata属性;你可以尝试这种方法,声明@ObservedObject var fruit: FruitEntity。由于CoreData使用了可选项,因此您还需要测试非nil值,如代码所示。

struct FruitRowView: View {
@ObservedObject var fruit: FruitEntity

var body: some View {
VStack {
if fruit.name != nil {
TextField("Enter fruit name", text: Binding($fruit.name)!)
}
}
.onAppear {
if fruit.name == nil {
fruit.name = ""
}
}
}
}

相关内容

  • 没有找到相关文章

最新更新