我完全不知道這是否可能,但它可以使我免於很多壓力和糟糕的代碼。是否有可能監視一個數組何時更新?例如,方法A將數組a=[1,2,3]
更改爲a=[1,2,3,4
],是否有可能在更新a
時觸發某種代理?監視對數組對象的更改
11
A
回答
20
如果您的數組是您的類中的屬性,則可以使用屬性觀察器。 willSet在更改之前調用,didSet在之後調用。這很容易。
var myArray:[Int] = [1, 3, 4] {
didSet {
println("arrayChanged")
}
}
這將打印數組改變,如果我一個int,刪除和Int,等我通常把它放在同一行,但:
var myArray:[Int] = [1, 3, 4] { didSet { println("arrayChanged") } }
+0
正是我在找的東西,謝謝。 – 2015-02-11 01:44:07
+0
謝謝,這是非常有幫助的 – 2017-03-10 03:26:39
+6
有什麼辦法來監視內部數組的變化?像myArray.append(x)? – 2017-10-06 12:29:41
相關問題
- 1. 數據庫對象監視
- 2. 正在監聽數組中的更改的JavaScript對象
- 3. 監視對象變化的Python對象
- 4. 監視對陣列的更改
- 5. 監督對象屬性值的更改
- 6. 更改對象數組中的數據
- 7. 有沒有辦法監視對象的更改?
- 8. 在對象的數組更改屬性
- 9. 更改Javascript對象/數組的格式
- 10. 更改數組對象的元素
- 11. 更改對象數組的順序
- 12. 更改對象數組中的鍵名?
- 13. 監視對數據庫和更新列表的更改
- 14. AngularJS監視數據變化的對象數組
- 15. 在對象數組中找到已更改的對象
- 16. 更多對象屬性與數組對象的更少對象
- 17. Java對象監視器
- 18. Java對象監視器
- 19. 使用循環更改數組對象
- 20. 更改XML響應數組或對象
- 21. json_encode更改數組與對象
- 22. 將數組更改爲對象
- 23. 修改對象的數組
- 24. Angular2監視對象/數組的變化(Angular2 final> = 2.1.1)
- 25. AngularJS監視帶有索引的對象數組
- 26. 在NSMutable對象數組中更改對象
- 27. 在春天監視對數據庫的更改
- 28. 計算對象數組中的差異,包括對對象的更改?
- 29. 在更新數組中的內部對象時不執行監視
- 30. JavaScript數組到對象:將數組元素更改爲對象屬性和值
爲什麼不執行自己的協議觀察到,使陣列有問題符合? – 2015-02-11 01:14:38
或者製作一個包裝器對象,在更新數組時,調用didChangeArray()或翻轉可以檢查的公共布爾值。 – 2015-02-11 01:16:46
這是在這裏睡覺的時候了。我明天會提供它(除非有人提出了一個聰明的想法) – 2015-02-11 01:20:32