观察者模式与MVC模式详解
观察者模式
注册键值观察者
当一个观察者对象注册以观察另一个对象的属性时,需要以下五部分信息:
1. 源对象
2. 观察者
3. 源对象属性的键值路径
4. 一组观察者选项
5. 一个可选的上下文值
键值路径比最初看起来更灵活,它接受键值编码路径,可以描述属性的属性,为键值观察(KVO)提供了很大的灵活性和强大功能。
以下是一个观察复杂键值编码路径的示例代码:
#import "Chameleon.h"
@interface ReptileZoo : NSObject {
Chameleon *chameleon;
}
@property (assign) Chameleon *chameleon;
@end
@implementation ReptileZoo
@synthesize chameleon;
@end
// ...
ReptileZoo *zoo = [ReptileZoo new];
Chameleon *chameleon1 = [Chameleon new];
Chameleon *chameleon2 = [Chameleon new];
Watcher *watcher = [Watcher new];
chameleon1.color = [NSColor blueColor];
chameleon2.color = [NSColor redColor];
zoo.chameleon = chameleon1;
[zoo addObserver:w
超级会员免费看
订阅专栏 解锁全文
550

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



