可以说我有:
@property NSNumber* number;
我的 Controller 正在观察:
- (void)observeValueForKeyPath:(NSString *)keyPath ...
{
if ([keyPath isEqualToString:@"number"]) ...
}
我的问题是-,重构
number
属性的名称的方法是什么?显然,我需要更新观察者代码中的观察到的键,但是我该如何以某种智能/自动的方式来做到这一点,并且不要错过任何观察者来处理我的属性(property)变更的情况?
最佳答案
一种方法是为要观察的所有属性声明字符串常量。使用这些常量来添加观察者并比较keypath
。每当您想重命名属性时,都应该更改这些字符串常量的值。
我认为完全雾化是不可能的。
关于ios - KVO和重构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14358449/