SwiftUI-什麼是@Published? ObservableObject?
Published in
May 17, 2022
最近文章會更新的勤勞一些(應該XD
@Published 是 SwiftUI 中非常好用的wrapper,它允許我們創建”可觀察的” object,當這些object發生更改時會自動宣布通知。 SwiftUI 將自動監控此類更改,並重新調用data的任何view的 body 屬性。
無論何時更改帶有標記為 @Published 的屬性的object,都會reload使用該object的所有view以反應這些更改。
example:
class A: ObservableObject {
var items = [Int]()
}
這符合ObservableObject protocol, SwiftUI 的view可以觀察它的變化。但是因為沒有用@Published 標記,所以永遠不會發送任何更改通知。
若想要從items 中添加或刪除某些內容時發送更改公告,可以使用@Published 對其進行標記。
class A: ObservableObject {
@Published var items = [Int]()
}
因此不需要做任何事情@Published 將 willSet 觀察者添加到items,以便任何更改都會自動發送給觀察者。