作为学习客观 c/oop 的辅助工具,我正在设计一个 iOS 应用程序来存储和显示定期体重测量值。我有一个单例,它返回测量对象共享存储的可变数组。每次测量至少有一个日期和体重,我希望能够添加历史测量结果。
我想按日期顺序显示测量值。最好的方法是什么?据我所知,选项如下:1)添加测量时 - 每次添加测量后,我都会重写 addobject 以对共享存储进行排序,2)检索可变数组时,我对其进行排序,或者 3)我检索可变数组以共享存储中的任意顺序排列,然后在显示表格/图表时对其进行排序。
检索数据的频率可能比添加新数据的频率更高,因此选项 1 将减少共享存储的冗余排序 - 所以这是最好的方法,是吗?
最佳答案
您可以使用 (1) 的修改版本。您不必在每次插入新对象时对整个数组进行排序,而是使用此处描述的方法:https://stackoverflow.com/a/8180369/1187415将新对象插入到数组中的正确位置。
然后,对于每个插入,您只需进行二分搜索即可找到新对象的正确索引,并且数组始终处于正确的顺序。
既然您说检索数据的频率比添加新数据的频率更高,那么这似乎更有效。
关于objective-c - 保持数组排序 - 在设置时、获取时还是稍后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15548779/