KVO和重构

Mac*_*nik 5 refactoring properties objective-c key-value-observing ios

让我们说我有:

@property NSNumber* number;
Run Code Online (Sandbox Code Playgroud)

我的控制器正在观察:

- (void)observeValueForKeyPath:(NSString *)keyPath ...
{
    if ([keyPath isEqualToString:@"number"]) ...
}
Run Code Online (Sandbox Code Playgroud)

我的问题是 - 你重构number财产名称的方法是什么?

很明显,我需要在观察者代码中更新观察到的密钥,但是我怎么能以某种智能/自动的方式进行,并且不会错过任何观察者来处理我的财产变更?

Apu*_*urv 3

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

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