我有很多本地存储的数据(10000多条数据记录)(尚未决定 - 这是问题的一部分)
如何对此数据(在特定字段上)实施增量搜索?
我应该如何在本地设置数据?
XML? PLIST? sqlite?
我应该使用Core Data进行访问吗?
答案 0 :(得分:1)
如果数据集增加,那么您可能希望考虑更高级的解决方案。请参阅维基百科上的"Directed acyclic word graph"。
如果您这样做,可以在Sourceforge找到一些实施代码。它是C ++,但您可以将Objective C .m文件重命名为.mm,并包含任何C ++代码。
答案 1 :(得分:0)
您可能想要使用Core Data,如果记录之间存在任何关系,您肯定会这样做。如果没有核心数据来管理关系,应用程序的复杂性可能会滚雪球。
一种常见的误解是,由于Core Data自动处理大量复杂性,因此必须在性能上进行不可避免的权衡,以便尽管Core Data易于实现,但它必须是最慢的解决方案。事实证明,通常情况并非如此,因为苹果公司已经做了大量的调整。在大多数用例中,很难为最佳Core Data编写解决方案。
我建议您从最简单的Core Data解决方案开始,然后只有在测试简单解决方案并发现它变慢时才会变得更复杂。我会从一个强力获取开始,看看是否足够快。下一步将是仅对该实体的单个属性进行提取,例如name
实体的Person
属性,然后仅在需要时获取整个实体。如果这仍然很慢,你将不得不考虑在实体图中实现某种树结构(这并不困难。)
过早优化是万恶之源。如果没有测试生成的数据,请不要尝试做出优化决策。从长远来看,你会浪费更多的时间。只有在绝对必要时才开始简单并增加复杂性。