我有以下数据模型:
class MyImage: : Identifiable, Equatable, ObservableObject {
let id = UUID()
var path: String
@Published var coordinate: CLLocationCoordinate2D?
}
class MyImageCollection : ObservableObject {
@Published var images: [MyImage] = []
@Published var selection: Set<UUID> = []
}
extension Array where Element == MyImage {
func haveCoordinates() -> Array<MyImage> {
return filter { (image) -> Bool in
return image.coordinate != nil
}
}
}
我在视图中使用集合如下:
# Top View
@StateObject var imageModel: MyImageCollection = MyImageCollection()
# Dependend Views
@ObservedObject var imageModel: MyImageCollection
因此,在我的 SwiftUI 中,每当我通过imageCollection.images.append(anImage)
一切正常添加 MyImage 的新实例时,任何视图都会相应更新,任何使用imageCollection.haveCoordinates()
的视图也会更新。但是,当我更改图像的属性(如imageCollection.images[0].coordinate = someCoordinate
. 这目前不起作用。
有什么提示吗?