kvo和kvc

来源:互联网 发布:阿里云 404 编辑:程序博客网 时间:2024/05/17 03:09

1.kvo(NSKeyValueObservingCustomization):它提供一种机制:当指定的对象的属性被修改后,则对象就会接收到通知。

*注册:observer:要监听的对象;keyPath:要监听的属性值;context:需要传输的数据(void *:任意指针类型),没有为nil;options:监听选项,说明返回的字典包含什么值(NSKeyValueObservingOptionNew:返回字典包含新值;NSKeyValueObservingOptionOld:返回的字典包含旧值;)

- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context;

*监听:在value变化时候自动调用

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context;

*移除:

- (void)removeObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath;


2.kvc(NSKeyValueCoding):它提供一种可以直接通过字符串的名字(key)来访问类实例变量的机制,通过setter、getter方法访问。

kvc可以用来访问和设置实例变量的值。key是属性名称

设置方式:[self setValue:aName forKey:@"name"];等同于:self.name = aName;

访问方式:aString = [self valueForKey:@"name"];等同于:aString = self.name;

原创粉丝点击