【问题标题】:How do I create array conformed to ObservableObject?如何创建符合 ObservableObject 的数组?
【发布时间】:2020-01-17 12:38:10
【问题描述】:
class Group: ObservableObject {
    @Published var size: CGFloat = 22
}

struct content: View {
    @ObservedObject var groups: [Group] = []
    var body: some view {
        .
        .
        .
  }
}

以上代码错误信息:

在“ObservedObject”上引用初始化程序“init(wrappedValue:)” 要求 '[Group]' 符合 'ObservableObject'

我需要符合ObservableObject 的数组,因为我需要检测 [Group] 中 Group 的 size 属性

如何制作ObservableObject(ObservedObject)的数组

【问题讨论】:

    标签: swift environment observedobject


    【解决方案1】:

    我不确定如何直接解决此问题,但解决您的问题的一种方法是保存您的数组的 GroupStore。可能是这样的:

    class GroupStore: ObservableObject {
    
        @Published private(set) var groups: [Group] = []
        .
        .
        .
    }
    

    然后在您的视图中添加 GroupStore 属性,如下所示:

    struct content: View {
    
        @ObservedObject var groupStore: GroupStore
        .
        .
        .
    }
    

    【讨论】:

    • 谢谢你的回答。但是你的代码有一个问题。当更改组的属性大小时,内容不会检测到更改的组,因为组不是结构而是类。我错了吗?
    • 很抱歉,我需要检测 [Group] 中 Group 的 size 属性。
    猜你喜欢
    • 2021-01-25
    • 2021-07-26
    • 2023-03-06
    • 2017-01-25
    • 2020-04-19
    • 2021-11-01
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    相关资源
    最近更新 更多