我已经成为 KVO/KVC 的忠实粉丝。我喜欢它让我的 MVC 架构保持整洁的方式。但是,当我在我正在设计的 3D 渲染应用程序的内部渲染循环中使用 KVO 时,我不喜欢我所招致的巨大性能损失,其中消息将以每秒 60 次的速度为每个观察对象触发 - 可能是数百次。
加速 KVO 的技巧和窍门是什么?具体来说,我正在观察一个标量值 - 而不是一个对象 - 所以包装/展开可能会杀死我。我也在设置和拆除观察
[foo addObserver:bar forKeyPath:@"fooKey" options:0 context:NULL];
[foo removeObserver:bar forKeyPath:@"fooKey"];
在内循环内。也许我正在为此受到打击。
我真的,真的,想要保持 KVO 为我提供的巨大灵活性。有哪位速度狂人可以伸出援手吗?
干杯,道格