键值观察 - 是否有更简单的方法来处理 ios 应用程序中更改的许多数据



我有一个正在开发的应用程序,它有许多相互依赖的数据。 基本上,我有一组数字字段,用于计算其他数字字段,然后用于计算其他字段。 我正在尝试确定处理潜在大量更改的最佳方法。

我想到的一个解决方案是,我可以覆盖用户可以修改的值的 setter 以进行计算,然后适当地更新数据对象中的其他值。 这样做的最大缺点是需要编写大量(有点样板)代码。

我想到的另一个解决方案是使用键值观察来处理数据更改,然后从这些更改中更新相关值。 请注意,除非独立值更新,否则任何依赖值都不会更新。 虽然我认为这会更优雅一些,但我担心潜在的性能问题,或者我可能没有考虑的问题。

我缺少第三种方式吗? 这类工作有什么最佳实践吗? 我知道我可能不得不编写一堆某种样板代码 - 我希望代码最容易维护,并且代码量尽可能少。

KVO 应该没有任何性能问题,除非你有非常多的字段或非常频繁的更新,但它的 API 不是最好的。一个缺点是它通过一种方法汇集所有通知。这可能是也可能不是问题,具体取决于字段的数量和类型。

通知也可能是一个不错的选择。每个字段都可以有一个通知名称,它将从中发布更改,而其他字段可以在没有指向源字段的显式指针的情况下进行观察。

还有协议委派,虽然更简单、性能更高,但根据你如何做,可能会相当繁重。

相关内容

最新更新