如何创建符合 ObservableObject 的数组?

Med*_*com 0 environment swift observedobject

class Group: ObservableObject {
    @Published var size: CGFloat = 22
}

struct content: View {
    @ObservedObject var groups: [Group] = []
    var body: some view {
        .
        .
        .
  }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码错误信息:

在“ObservedObject”上引用初始值设定项“init(wrappedValue:)”要求“[Group]”符合“ObservableObject”

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

如何制作数组 ObservableObject(ObservedObject)

Tee*_*etz 7

我不确定如何直接解决这个问题,但解决您的问题的一种方法是使用 GroupStore 来保存您的数组。看起来像这样:

class GroupStore: ObservableObject {

    @Published private(set) var groups: [Group] = []
    .
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

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

struct content: View {

    @ObservedObject var groupStore: GroupStore
    .
    .
    .
}
Run Code Online (Sandbox Code Playgroud)