当前位置: 首页 > 工具软件 > Dodo-iOS > 使用案例 >

IOS 之 KVC & KVO

蔚学林
2023-12-01

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"];

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



 类似资料: