KVOControllerkey-value 監(jiān)控實(shí)現(xiàn)
Key-value 的監(jiān)控是一個(gè) MVC 應(yīng)用中非常有用的技術(shù)。KVOController (來(lái)自 facebook)構(gòu)建了一個(gè)基于 Cocoa 的 time-tested key-value 監(jiān)控實(shí)現(xiàn),提供簡(jiǎn)單方便、線程安全的 API。好處包括:
使用 Blocks、自定義 Actions 或者 NSKeyValueObserving 回調(diào)進(jìn)行通知.
觀測(cè)者移除時(shí)無(wú)異常
控制器 dealloc 時(shí)隱式的觀測(cè)者移除
提升使用 NSKeyValueObservingInitial 的性能
線程安全并提供在觀測(cè)者恢復(fù)時(shí)額外的保護(hù)Thread-safety with special guards against observer resurrection – rdar://15985376.
使用方法:
// create KVO controller with observer
FBKVOController *KVOController = [FBKVOController controllerWithObserver:self];
// observe clock date property
[KVOController observe:clock keyPath:@"date" options:NSKeyValueObservingOptionInitial|NSKeyValueObservingOptionNew block:^(ClockView *clockView, Clock *clock, NSDictionary *change) {
// update clock view with new value
clockView.date = change[NSKeyValueChangeNewKey];
}];
要求:
iOS 6 or later.
OS X 10.7 or later.
評(píng)論
圖片
表情
