KVO屬于觀察者模式的一種機(jī)制呵哨,Key value observer 择同,顧名思義两入,鍵值觀察者,主要功能就是觀察某一個(gè)對(duì)象的屬性變化敲才,以便根據(jù)對(duì)象的變化裹纳,做出相應(yīng)的操作。
1.創(chuàng)建一個(gè)項(xiàng)目归斤,然后痊夭,創(chuàng)建一個(gè)繼承自NSObject的類(lèi)AppStatusWatcher
2.在AppStatusWatcher作為觀察者,加入
觀察者內(nèi)部的具體操作脏里,觀察到屬性變化后,做相應(yīng)的操作虹曙,我們這里只做的打印處理迫横,觀察屬性變化情況
3.然后在appdelegate引入 觀察者這個(gè)類(lèi) 并在appdelegate里面定義兩個(gè)屬性
appStatus作為需要watcher觀察的本VC的屬性
4 注冊(cè)觀察者,
self.watcher = [AppStatusWatcher new];
[self addObserver:self.watcher forKeyPath:@"appStatus" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:@"Pass Context"];
self.appStatus = @"launch";
方法里:addObserver為注冊(cè)觀察者酝碳,keyPath
option后面是 觀察的是啥矾踱,如我這里觀察的是新舊值
5.2016-07-15 10:44:09.245 KVO機(jī)制練習(xí)[18101:1212705] Property 'appStatus'of object '' changed:{? ? kind = 1;? ? new = launch;? ? old = "";},context:Pass Context2016-07-15 10:44:09.249 KVO機(jī)制練習(xí)[18101:1212705] Property 'appStatus'of object '' changed:{
kind = 1;
new = active;
old = launch;
},context:Pass Context