可以说我有:

@property NSNumber* number;

我的 Controller 正在观察:
- (void)observeValueForKeyPath:(NSString *)keyPath ...
{
    if ([keyPath isEqualToString:@"number"]) ...
}

我的问题是-,重构number属性的名称的方法是什么?

显然,我需要更新观察者代码中的观察到的键,但是我该如何以某种智能/自动的方式来做到这一点,并且不要错过任何观察者来处理我的属性(property)变更的情况?

最佳答案

一种方法是为要观察的所有属性声明字符串常量。使用这些常量来添加观察者并比较keypath。每当您想重命名属性时,都应该更改这些字符串常量的值。

我认为完全雾化是不可能的。

关于ios - KVO和重构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14358449/

10-10 19:23