iOS开发中的数据处理与文件系统操作
1. 键值观察(Key-Value Observing)
1.1 场景与问题
在模型 - 视图 - 控制器(MVC)设计模式中,控制器需要知道模型中的信息何时发生变化,以便指示视图更新显示。有两种方式可以实现:
- 反复检查模型是否有变化。可以创建一个定时器,定期从模型中获取最新值并提供给视图。但这种方法比较浪费资源,如果模型不经常变化,大部分更新是冗余的,会浪费时间和 CPU 资源,在电池供电设备上还会消耗电池电量。
- 等待模型通知控制器变化。Cocoa 提供了键值观察(Key-Value Observing)功能来解决这个问题。
1.2 注册变化通知
当注册变化通知时,需要告诉要观察的对象三件事:
- 当属性变化时应被通知的对象。
- 要观察的属性名称。
- 当变化发生时观察者应被告知的信息。
还可以可选地包含一个指针或对象引用,该引用将传递给属性值变化时运行的方法。
以下是一个注册观察 Product 对象价格变化的示例:
// aProduct is a Product object
// Make this current object (self) be notified when the product
// changes its price; we want to be notified of both the old
// value and the new value
[aProduct add
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



