gpt4 book ai didi

swiftui - 如何检测核心数据对象属性的变化

转载 作者:行者123 更新时间:2023-12-02 18:51:39 25 4
gpt4 key购买 nike

我有一个名为 Cake 的核心数据实体,它具有如下属性:

  • 正在使用的成分数量
  • 总成分数
  • 颜色
  • 体重

我从实体中读取了一个对象,现在我有了这样的东西

let orangeCake = Cake(type:"orange", context:coreDataContext)

现在我想显示一个 ProgressView。我想传递进度 View ,一个绑定(bind) numberOfIngredientsBeingUsed 属性,代表目前使用的成分的当前数量和一个常规属性 numberOfIngredientsTotal,代表所需成分的总数做蛋糕。

想法是,当 numberOfIngredientsBeingUsed 在主视图上更改时,进度 View 会更新,因为它是一个绑定(bind)属性。

我该怎么做?我无法全神贯注,因为 numberOfIngredientsBeingUsed 是蛋糕对象 orangeCake 的一个属性。

最佳答案

CoreData 托管对象是 ObservableObject 类型,因此您需要将 Cake 的整个实例作为 ObservedObject 注入(inject)并使用,而不是传递一个属性它在 ProgressView 中的属性,只要相应的对象在代码的其他部分的某处更新,它就会更新(并刷新 View )。

应该是这样的

struct ProgressView: View {
@ObservedObject var model: Cake

var body: some View {
Text("Progress: \(model.numberOfIngredientsBeingUsed) of \(model.numberOfIngredientsTotal)")
}
}

关于swiftui - 如何检测核心数据对象属性的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66676973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com