KVO監聽容器類(陣列,字典等)屬性的兩種方法
kvo大家都會用.原理百度一大堆.這篇文章主要介紹監聽容器類屬性變化的方法.
程式碼截圖
程式碼很詳細
網上大多數是第一種方法,需要把陣列包裝一層.然後新增或者刪除時需要做特殊處理.
[[self.person mutableArrayValueForKeyPath:tempArrayTwoType] addObject:XXX];
[[self.person mutableArrayValueForKeyPath:tempArrayTwoType] removeObject:XXX];
第二種方法是取消自動通知,採用手動通知的方式.
點選按鈕 列印結果 第一次和第二次截圖
大家會發現觀察者代理方法裡列印的結果不一致,原因是因為修改型別不一致. kind值就是這個型別.
還有其他卻別是.手動通知更加靈活.可以在需要的時機進行通知.不用新建物件將陣列包裝一層.
相關文章
- 屬性和監聽
- 學習筆記:vue為什麼不能監聽陣列屬性的變化筆記Vue陣列
- vue計算屬性 監聽 方法的區別Vue
- Vue:watch 監聽多個屬性值的方法Vue
- 監聽 watch props物件屬性監聽 或深度監聽物件
- NumPy 陣列屬性陣列
- JavaScript監聽屬性改變JavaScript
- 如何監聽陣列變化?陣列
- JS 陣列(Arrey)屬性以及方法詳解JS陣列
- iOS 字典轉陣列,陣列轉字典iOS陣列
- 關於JS陣列中相同物件屬性值歸類方法的一點思考JS陣列物件
- JavaScript 陣列 length 屬性JavaScript陣列
- vue是如何監聽陣列變化的Vue陣列
- java8 對list集合中的物件遍歷,重新賦值兩種方法,遍歷某個屬性返回陣列Java物件賦值陣列
- 使用 TypeScript 自定義裝飾器給類的屬性增添監聽器 ListenerTypeScript
- vue監聽input是否為空(監聽值為物件某個屬性)Vue物件
- 監聽檔案修改的四種方法
- 求陣列長度的兩種方法,以及區別(strlen sizeof)陣列
- Lesson4——NumPy 陣列屬性陣列
- 論如何監聽物件某個屬性的變化物件
- Python 動態新增例項屬性,例項方法,類屬性,類方法Python
- JS的平凡之路–模仿Vue寫個陣列監聽JSVue陣列
- 類的靜態屬性和方法
- win10桌面屬性在哪裡_win10開啟桌面屬性的兩種方法Win10
- 遍歷陣列的幾種方法陣列
- 陣列去重的幾種方法陣列
- 陣列去重的六種方法陣列
- 深入理解 Getter和Setter 對物件的屬性監聽物件
- 關於在類陣列中使用陣列方法陣列
- Swift - 陣列、字典、集合Swift陣列
- 處理陣列中某一屬性陣列
- 合併陣列物件中相同的屬性值陣列物件
- 陣列的三種宣告方式總結、多維陣列的遍歷、Arrays類的常用方法總結陣列
- python之建立類的兩種方法Python
- JS 兩組陣列取不同值組成新陣列的方法JS陣列
- 陣列,陣列類,SyStem類陣列
- 一種基於KVO的頁面載入,渲染耗時監控方法
- Spring_Mybatis整合 註解配置類與xml配置檔案兩種方式分析及初始化IOC容器與監聽獲取取IOC容器SpringMyBatisXML