keyPathForValuesAffectingValueForKey ios开发 kvo相关
2015-03-04 11:55
375 查看
keyPathForValuesAffectingValueForKey
键值观察是一种使对象获取其他对象的特定属性变化的通知机制。控制层的绑定技术严重依赖键-值观察获得模型层和控制器层的变化通知。为接收某个属性的键值观察通知,以下三个要素是必须的:1,被观察的类当中你关心的属性必须遵循键值观察的。2,你必须使用以下方法,将观察方对象与被观察方对象注册:ForKeyPath:options:context3,观察方的对象必须实现以下方法:observeValueForKeyPath:ofObject:change:context;ios键值观察技术如果你需要处理拥有对应关系的相关实体,那么可以重写keyPathForValueAffectingValueForKey:也可以实现一个适当的方法来注册依赖的键。- (NSString *)fullName { |
return [NSString stringWithFormat:@"%@ %@",firstName, lastName]; |
} |
+ (NSSet *)keyPathsForValuesAffectingValueForKey:(NSString *)key |
{ |
NSSet *keyPaths = [super keyPathsForValuesAffectingValueForKey:key]; |
if ([key isEqualToString:@"fullName"]) |
{ |
NSSet *affectingKeys = [NSSet setWithObjects:@"lastName", @"firstName",nil]; |
keyPaths = [keyPaths setByAddingObjectsFromSet:affectingKeys]; |
} |
return keyPaths; |
} |
+ (NSSet *)keyPathsForValuesAffectingFullName |
{ |
return [NSSet setWithObjects:@"lastName", @"firstName", nil |
} |
相关文章推荐
- 【iOS开发-60】案例学习:多组数据的tableView设置、添加右側组索引、多层数据模型设置以及valueForKeyPath
- 【iOS开发-60】案例学习:多组数据的tableView设置、增加右侧组索引、多层数据模型设置以及valueForKeyPath
- iOS开发66-setValue:forKey:和 setObject:forKey:的区别
- IOS开发之——objectForKey与valueForKey在NSDictionary中的差异
- IOS开发之——objectForKey与valueForKey在NSDictionary中的差异
- IOS开发之NSDictionary里setValue:forKey与setObject:forKey、objectForKey与valueForKey的差异
- IOS开发之NSDictionary里setValue:forKey与setObject:forKey、objectForKey与valueForKey的差异
- IOS开发之——objectForKey与valueForKey在NSDictionary中的差异
- iOS KVC valueForKeyPath学习心得
- IOS开发之NSDictionary里setValue:forKey与setObject:forKey、objectForKey与valueForKey的差异
- iOS 监听控件某个属性的改变observeValueForKeyPath
- keyPathForValueAffectingValueForKey的使用
- ios-day06-03(UITableView的索引条、一个对象作为另一个对象的属性、valueForKey和valueForKeyPath的区别)
- 轻量级KVO ——》 KVO 管理 observeValueForKeyPath
- iOS开发7-KVO(Key-Value Observer)键值观察
- IOS开发之NSDictionary里setValue:forKey与setObject:forKey、objectForKey与valueForKey的差异
- iOS开发中的objectForKey和valueForKey在NSDictionary中的区别
- iOS valueForKeyPath使用与感悟
- IOS valueForKeyPath
- KVO 接收变更通知 observeValueForKeyPath:ofObject:change:context: