Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种更简单的方法来处理ios应用程序中更改的许多数据?_Ios_Key Value Observing_Large Data - Fatal编程技术网

有没有一种更简单的方法来处理ios应用程序中更改的许多数据?

有没有一种更简单的方法来处理ios应用程序中更改的许多数据?,ios,key-value-observing,large-data,Ios,Key Value Observing,Large Data,我有一个正在开发的应用程序,它有许多相互依赖的数据。基本上,我有一组数字字段,用于计算其他数字字段,然后用于计算其他字段。我正在尝试确定处理潜在大量更改的最佳方法 我想到的一个解决方案是,我可以覆盖用户可以修改的值的设置器来进行计算,然后适当地更新数据对象中的其他值。最大的缺点是需要编写的代码数量太多(有点像样板) 我想到的另一个解决方案是使用键值观察来处理数据更改,然后根据这些更改更新依赖值。请注意,除非独立值更新,否则任何依赖值都不会更新。虽然我认为这会更优雅一些,但我担心潜在的性能问题,或

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

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

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


还有第三条路我错过了吗?这类工作有什么最佳实践吗?我知道我可能不得不编写一些样板代码——我希望这些代码是最容易维护的,并且代码量尽可能少。

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

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


还有一种方法,虽然更简单、性能更高,但根据您的操作方式,它可能相当繁琐。

如果人们想知道,我在类似但仍然显著不同的环境——Java中有很多经验。对于iOS生态系统来说,我还是一个新手,我正在努力摸索,找到最好的/推荐的方法,以确保我的软件尽可能的可维护和正确。如果将来有人看到这个问题,我会继续进行关键值观察,因为这对我来说是最容易完成的,我不想使用完整的通知系统。是的,我想避免协议委托,只是因为它周围的样板代码。不过,我会查看通知-谢谢你的提示!