代码之家  ›  专栏  ›  技术社区  ›  No Surprises

在保持最大项目总数的同时,是否有向历史记录添加新项目的提示或最佳实践?

  •  0
  • No Surprises  · 技术社区  · 15 年前

    我正在为一个核心数据iPhone应用程序开发一些基本的日志记录/历史记录功能。我想保留最大数量的历史项目。

    我的总体计划是在添加新项目时忽略最大值,并在需要获取所有项目时强制执行(例如,用于搜索或浏览历史记录)。或者,我可以在添加新项目时这样做:获取当前项目,添加新项目,如果达到最大值,则删除最旧的项目。第二种方法似乎效率较低,因为我会在不需要的时候提取所有的物品。

    所以,问题是:

    • 哪条路更好? 有没有更好的方法可以做到这一点,我没有考虑?
    • 最多多少项是合理的? 历史记录用于文本字段的自动完成,所以更多的项目意味着更好的可用性,除非项目的数量如此之大,以致于减慢了速度。

    谢谢!

    2 回复  |  直到 15 年前
        1
  •  1
  •   Alex    15 年前

    无论哪种方法更容易实现,都是正确的方法。您不应该为更高效/更复杂的实现而烦恼,除非它证明它是必要的。

    如果这些对象处于某种对多关系中,我将使用该关系来管理最大数量。(覆盖 add<Whatever>Object: 然后删除无关项)。

    如果你只是提取它们,那么这真的是你过滤它们的唯一机会。如果使用 NSArrayController ,您可能能够实现一个子类,该子类检测何时添加新对象,并切掉多余的对象。

        2
  •  0
  •   TechZen    15 年前

    如果项目是由用户手动添加的,那么您以后可以安全地使用清理方法。使用文本数据,用户最多不会输入几百个项目,文本数据占用的空间非常小。如果项目是通过软件添加的,那么您必须检查每一个条目,否则会有溢出的风险。

    你可能不想在这上面花很多时间。自动完成并没有那么大,通常只有几百个条目。我会用最简单的方法纠正它,稍后进行清理,然后仅在遇到明确的性能瓶颈时才进行处理。

    记住,过早的优化是所有编程罪恶的根源。以及市场营销部的工作人员。