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