IOS 之 KVC & KVO

来源:互联网 发布:云编程 编辑:程序博客网 时间:2024/04/30 15:31

KVC 全称(key value coding ) 键值编码。是间接的访问对象属性的一种方式

1.1 赋值

     Person * person = [[Person alloc] init];    //person.name = @"dodo";     通过setter方法为对象的属性赋值    //KVC 方式  给对象的当前属性赋值(间接) 其实也是通过setter 方法给对象赋值的</span>    [person setValue:@"odod" forKey:@"name"]; 

  //按照路径赋值  类包含Card类 可以赋值    [person setValue:@"222" forKeyPath:@"card.id"];
1.2 取值

    [person valueForKey:@"属性变量"];    [person valueForKeyPath:@"路径"];
2.1 可以利用KVC对工厂方法进行简洁    但是此方法的前提是

           所使用条件为属性名返回的数据键值一一对应

    NSArray * array = [NSArray array];    for (NSDictionary * dic in array) {       [person setValuesForKeysWithDictionary:dic];      }
KVO 全称(key value observing ) 键值观察。观察者模式实现的一种方式。

1.1使用步骤

1.注册观察者

 Person * p = [[Person alloc] init]; [p addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];

2.实现观察者对象的代理方法

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

3.移除观察者

   [person removeObserver:self forKeyPath:@"name"];

观察者模式性能不是很好,使用完毕之后,一定要及时的去释放掉观察者对象。



0 0
原创粉丝点击