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财产名称的方法是什么?
很明显,我需要在观察者代码中更新观察到的密钥,但是我怎么能以某种智能/自动的方式进行,并且不会错过任何观察者来处理我的财产变更?
一种方法是为所有正在观察的属性声明字符串常量。使用这些常量来添加观察者并进行比较keypath。每当您想要重命名属性时,都应该更改这些字符串常量的值。
我认为完全雾化是不可能的。
| 归档时间: |
|
| 查看次数: |
260 次 |
| 最近记录: |