KVOController的使用

KVOController 是一個(gè)簡單安全的 KVO(Key-value Observing,鍵-值 觀察)工具屁奏,用于 iOS 和 OS X 應(yīng)用開發(fā)中,開源自 facebook。

KVO 是一個(gè)在 MVC(Model-View-Controller)應(yīng)用程序開發(fā)中赖条,用于不同模塊間交流的一個(gè)很有用的技術(shù)。 KVOController 是基于 Cocoa 久經(jīng)考驗(yàn)的 Key-value Observing 實(shí)現(xiàn)(implementation)開發(fā)而成的常熙。它提供了一個(gè)簡單現(xiàn)代的 API纬乍,同時(shí)也是線程安全的。它有如下優(yōu)點(diǎn):

1.不需要手動(dòng)移除觀察者裸卫;框架自動(dòng)幫我們移除觀察者

2.使用 block 來替代方法能夠減少使用的復(fù)雜度仿贬,提升使用 KVO 的體驗(yàn);block或者selector的方式墓贿,方便使用

3.每一個(gè) keyPath 會(huì)對(duì)應(yīng)一個(gè)屬性茧泪,不需要在 block 中使用 if 判斷 keyPath蜓氨;一個(gè)keyPath對(duì)應(yīng)一個(gè)SEL或者block,不需要統(tǒng)一的observeValueForKeyPath方法里寫if判斷


KVOControlle的實(shí)現(xiàn)只需要一個(gè)方法

方法1:檢測單個(gè)屬性的變化

方法2:檢測多個(gè)屬性變化

fbKVO = [FBKVOController controllerWithObserver:self];

一:kvo值檢測類型调炬;

1:NSKeyValueObservingOptionNew 傳遞變化之后的值语盈;

2:NSKeyValueObservingOptionOld 傳遞變化之前的值;

3:NSKeyValueObservingOptionInitial 觀察者會(huì)在程序初始時(shí)缰泡,也就是觀察變化之前刀荒,優(yōu)化執(zhí)行一次 觀察動(dòng)作;即上述執(zhí)行上面 block操作一次棘钞;并且傳遞 默認(rèn)的值乔夯,和以后傳遞 變化后的值臀脏;

4:NSKeyValueObservingOptionPrior 會(huì)調(diào)用兩次觀察者操作,值改變之前,值改變之后鹉勒;

二:獲取

kvo的值;

change[NSKeyValueChangeNewKey] ? 新值绣檬;

change[NSKeyValueChangeOldKey] ? ?舊值模狭;

change[FBKVONotificationKeyPathKey] ?改變的屬性;

*/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末叫乌,一起剝皮案震驚了整個(gè)濱河市柴罐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌憨奸,老刑警劉巖革屠,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異排宰,居然都是意外死亡似芝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門板甘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來党瓮,“玉大人,你說我怎么就攤上這事盐类÷榫鳎” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵傲醉,是天一觀的道長蝇闭。 經(jīng)常有香客問我,道長硬毕,這世上最難降的妖魔是什么呻引? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮吐咳,結(jié)果婚禮上逻悠,老公的妹妹穿的比我還像新娘元践。我一直安慰自己,他們只是感情好童谒,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布单旁。 她就那樣靜靜地躺著,像睡著了一般饥伊。 火紅的嫁衣襯著肌膚如雪象浑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天琅豆,我揣著相機(jī)與錄音愉豺,去河邊找鬼。 笑死茫因,一個(gè)胖子當(dāng)著我的面吹牛蚪拦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播冻押,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼驰贷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了洛巢?” 一聲冷哼從身側(cè)響起饱苟,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎狼渊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體类垦,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡狈邑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蚤认。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片米苹。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖砰琢,靈堂內(nèi)的尸體忽然破棺而出蘸嘶,到底是詐尸還是另有隱情,我是刑警寧澤陪汽,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布训唱,位于F島的核電站,受9級(jí)特大地震影響挚冤,放射性物質(zhì)發(fā)生泄漏况增。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一训挡、第九天 我趴在偏房一處隱蔽的房頂上張望澳骤。 院中可真熱鬧歧强,春花似錦、人聲如沸为肮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽颊艳。三九已至茅特,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間籽暇,已是汗流浹背温治。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留戒悠,地道東北人熬荆。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像绸狐,于是被迫代替她去往敵國和親卤恳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • KVO 作為 iOS 中一種強(qiáng)大并且有效的機(jī)制寒矿,為 iOS 開發(fā)者們提供了很多的便利突琳;我們可以使用 KVO 來檢測...
    JzRo閱讀 943評(píng)論 0 2
  • KVO 作為 iOS 中一種強(qiáng)大并且有效的機(jī)制,為 iOS 開發(fā)者們提供了很多的便利符相;我們可以使用 KVO 來檢測...
    Draveness閱讀 6,899評(píng)論 11 59
  • 上半年有段時(shí)間做了一個(gè)項(xiàng)目拆融,項(xiàng)目中聊天界面用到了音頻播放,涉及到進(jìn)度條啊终,當(dāng)時(shí)做android時(shí)候處理的不太好镜豹,由于...
    DaZenD閱讀 3,021評(píng)論 0 26
  • 一、_objc_msgForward函數(shù)是做什么的蓝牲,直接調(diào)用它將會(huì)發(fā)生什么趟脂? _objc_msgForward是一...
    一個(gè)人一匹馬閱讀 350評(píng)論 0 1
  • 什么是坐標(biāo)系的轉(zhuǎn)換? 不同坐標(biāo)系,控件的View的frame值是不同的,比如上圖的紅色View,以藍(lán)色控件為父控件...
    船長_閱讀 11,033評(píng)論 4 13