使用什么数据结构/数据持久性

时间:2010-05-03 03:38:37

标签: arrays data-structures persistence

我有一个应用程序,我需要一个包含以下字段的信息表:

字段1 - int或char
字段2 - 字符串(最多10个字符)
字段3 - 字符串(最多20个字符)
field 4 - float

我需要程序根据分段控件过滤字段1,并从选择器中选择字段2。根据这些数据,我需要查找字段4以用于计算。总记录大约是200.我从来没有看到它超过400 - 500.我将使用我能够编码的单例,我只需要帮助这个数据持久性的结构。

我应该使用哪种类型的数据结构?我应该使用NSNumber,NSString等,还是旧的数据类型,如float,Char等?我想到了一个结构放入数组,但可能有更好的方法。这对我来说是新的,所以对示例的任何帮助或参考都会很棒。我还想过一个plist或字典,但看起来它只是一个查找和一个显然不起作用的字段。核心数据对我来说太过分了。另外,关于我如何获得初始数据的任何建议?我希望用户能够编辑并添加到数据库中。

2 个答案:

答案 0 :(得分:1)

Core Data并不是真的“过度杀伤” - 这正是它为你设计的那种东西。您可能习惯于“数据库”是昂贵且重量级的,但Core Data是基于sqlite构建的,它非常小而且速度快。相信我,对你的案子来说不会有问题。

答案 1 :(得分:0)

我认为结构对于你想做的事情会很好。我假设任何特定记录字段1-4属于同一记录。在这种情况下,您可以使用结构来表示记录。

现在,您似乎无法确定如何有效地索引这些记录。我建议将记录存储在listvector中。实际上,如果您认为自己会进行大量删除,那么list可能是最好的。这样,您可以直接索引要删除的元素,然后在常量时间内删除。然后,您可以使用几个不同的数据结构为listvector中的元素创建索引。您可以使用map或数组直接根据整数索引字段1进行映射。

然后,您可以使用按字段2映射的map或hashmap ....这将为您提供几种不同的索引索引方式。

请记住只存储对您正在创建的结构的引用...因此您不会在整个地方重复记录。

围绕这些数据结构创建包装器单例不应该太难。最困难的部分是确保你正确删除/插入所有内容,除此之外它应该可以很好地工作。