在 SwiftUI 中更新 CoreData 关系对象
Update CoreData relationship object in SwiftUI
关于 SwiftUI/CoreData 主题,我需要你的帮助。
我有一个 Kid
class 包含一个名为 parents
的一对多关系,它是 NSSet?
个 Parent
个对象。
我想访问并能够更新我的 parents
关系对象的属性。
我创建了一个计算 属性 parentsArray
来从 NSSet
中获取一个数组。这是代码:
public var parentsArray: [Parent] {
let set = parents as? Set<Parent> ?? []
return set.sorted {
[=10=].position < .position
}
}
现在,让我们转到我的 SwiftUI 视图:
ForEach(viewModel.kid.parentsArray) { parent in
Section(header: Text("Parent \(parent.position)")) {
TextField("Name", text: $parent.firstName) // Error: Cannot find $parent in scope
}
}
如您所见,问题是我无法访问绑定 $parent.firstName
。
ForEach
循环局部变量parent
的类型为Parent
。
你能帮帮我吗?非常感谢!
TextField
期望 Binding
,但您的可计算 parentsArray
提供了 CoreData 对象。
最好将TextField
分离成单独的视图与observed Parent
, like
struct ParentView: View {
@ObservedObject var parent: Parent // allows binding
var body: some View {
TextField("Name", text: $parent.firstName)
}
}
然后在节中使用它,比如
ForEach(viewModel.kid.parentsArray) { parent in
Section(header: Text("Parent \(parent.position)")) {
ParentView(parent: parent)
}
}
关于 SwiftUI/CoreData 主题,我需要你的帮助。
我有一个 Kid
class 包含一个名为 parents
的一对多关系,它是 NSSet?
个 Parent
个对象。
我想访问并能够更新我的 parents
关系对象的属性。
我创建了一个计算 属性 parentsArray
来从 NSSet
中获取一个数组。这是代码:
public var parentsArray: [Parent] {
let set = parents as? Set<Parent> ?? []
return set.sorted {
[=10=].position < .position
}
}
现在,让我们转到我的 SwiftUI 视图:
ForEach(viewModel.kid.parentsArray) { parent in
Section(header: Text("Parent \(parent.position)")) {
TextField("Name", text: $parent.firstName) // Error: Cannot find $parent in scope
}
}
如您所见,问题是我无法访问绑定 $parent.firstName
。
ForEach
循环局部变量parent
的类型为Parent
。
你能帮帮我吗?非常感谢!
TextField
期望 Binding
,但您的可计算 parentsArray
提供了 CoreData 对象。
最好将TextField
分离成单独的视图与observed Parent
, like
struct ParentView: View {
@ObservedObject var parent: Parent // allows binding
var body: some View {
TextField("Name", text: $parent.firstName)
}
}
然后在节中使用它,比如
ForEach(viewModel.kid.parentsArray) { parent in
Section(header: Text("Parent \(parent.position)")) {
ParentView(parent: parent)
}
}