iOS 中的kvo分為自動(dòng)監(jiān)聽和手動(dòng)觸發(fā)兩種方式,自動(dòng)監(jiān)聽很簡(jiǎn)單,不在此分析,這里主要說一下手動(dòng)觸發(fā)的實(shí)現(xiàn),面試容易問到
一、要點(diǎn)有幾下幾點(diǎn):
1、重寫監(jiān)聽屬性的set、get方法
2、重寫 + (BOOL)automaticallyNotifiesObserversForKey:(NSString *)key
3、在set方法中在賦值的前后分別調(diào)用:willChangeValueForKey和didChangeValueForKey
4、實(shí)現(xiàn)willChangeValueForKey和didChangeValueForKey方法
二、這里主要說下+ (BOOL)automaticallyNotifiesObserversForKey:(NSString *)key中的實(shí)現(xiàn):

屏幕快照 2016-05-17 下午6.42.01.png