Как создать массив, соответствующий ObservableObject? - PullRequest
0 голосов
/ 17 января 2020
class Group: ObservableObject {
    @Published var size: CGFloat = 22
}

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

код сообщения об ошибке выше:

Ссылка инициализатора 'init (wrappedValue :)' на 'ObservedObject' требует, чтобы '[Group]' соответствовал 'ObservableObject'

Мне нужен массив, соответствующий ObservableObject, потому что мне нужно определить свойство размера Group в [Group]

Как сделать массив из ObservableObject(ObservedObject)

1 Ответ

6 голосов
/ 17 января 2020

Я не уверен, как решить эту проблему напрямую, но одним из способов решения этой проблемы может быть что-то вроде GroupStore, который содержит ваш массив. Это может выглядеть так:

class GroupStore: ObservableObject {

    @Published private(set) var groups: [Group] = []
    .
    .
    .
}

И затем в вашем представлении вы добавляете свойство GroupStore следующим образом:

struct content: View {

    @ObservedObject var groupStore: GroupStore
    .
    .
    .
}
...