日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS中有两种支持机制:Notification和KVO(Key-Value Observing)

發布時間:2023/12/19 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS中有两种支持机制:Notification和KVO(Key-Value Observing) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

KVO是iOS中的一個核心概念,簡單理解就是:關注Model某個數據(Key)的對象可以注冊為監聽器,一旦Model某個Key的Value發生變化,就會廣播給所有的監聽器(http://blog.chinabyte.com/a/1557371.html

KVO:KVO是一個怎么樣的Cocoa機制?

答:Kvo(Key Value Coding)是cocoa中用來設值或取值的協議(NSKeyValueCoding),跟java的ejb有點類似。都是通過對變量和函數名進行規范達到方便設置類成員值的目的.它是Cocoa的一個重要機制,它有點類似于Notification,但是,它提供了觀察某一屬性變化的方法,而Notification需要一個發送notification的對象,這樣KVO就比Notification極大的簡化了代碼。這種觀察-被觀察模型適用于這樣的情況,比方說根據A(數據類)的某個屬性值變化,B(view類)中的某個屬性做出相應變化。對于推崇MVC的cocoa而言,kvo應用價值很高。

kvo的使用方法:

1、注冊: -(void)addObserver:(NSObject *)anObserver forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context keyPath就是要觀察的屬性值,options給你觀察鍵值變化的選擇,而context方便傳輸你需要的數據(注意這是一個void型)

2、實現變化方法:

-(void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context change里存儲了一些變化的數據,比如變化前的數據,變化后的數據;如果注冊時context不為空,這里context就能接收到。是不是很簡單?kvo的邏輯非常清晰,實現步驟簡單

轉載于:https://www.cnblogs.com/Rampage/archive/2012/02/10/2345530.html

總結

以上是生活随笔為你收集整理的iOS中有两种支持机制:Notification和KVO(Key-Value Observing)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。