KVO (key value observer)

参考资料:

demoPADemo中的NotificationCenterController.swift

KVO的原理

简单的说,KVO之所能够监控到属性值的变化,是因为系统在背后做了如下几步操作:

  1. 当一个object有观察者时,framework使用runtime动态创建这个object的类的子类;
  2. 对于每个被观察的property,重写其set方法;
  3. 在重写的set方法中调用- willChangeValueForKey:- didChangeValueForKey:通知观察者;
  4. 当一个property没有观察者时,删除重写的方法;
  5. 当没有observer观察任何一个property时,删除动态创建的子类。
在Demo中验证objc kvo简单探索中的方法
根据以上KVO的原理自己手动实现一个KVO
Copyright © shuoliu.com 2018 all right reserved,powered by Gitbook该文件修订时间: 2018-09-03 03:46:41

results matching ""

    No results matching ""