2014-10-02 78 views
1

我正在创建一个iOS琐事游戏,其中会有1,000至10,000个问题。每个问题只有两个可能的答案,因此每个问题的数据量将非常小。最好的方式来存储琐事游戏数据?

我想知道如果我应该使用核心数据来存储问题,或者如果我可以使用一个大的字典,我应用程序加载时填充?

这些选择中的任何一个都可以工作,还是有更好的解决方案我没有考虑过?

+1

使用数据库(sqlite或核心数据)。那么你只需要一次将一个问题读入记忆。 – rmaddy 2014-10-02 19:07:29

回答

1

存储这些问题的“最佳”方式在很大程度上取决于您的内部数据结构,内存使用情况和源数据结构。

您是如何收到问题的?如果它们是XML,那么您可能想要保留该结构并实现XML解析器。如果Excel格式,导出为CSV并从中读取。 JSON:加载到NSDictionary中。

如果您想将这些添加到Core Data或sqlite中,并且源代码问题的格式不同,则必须编写解析器和导入程序。然后,如果你更新的问题,你将不得不创建一个合并政策等。

就个人而言,如果你可以保持数据的原始格式而不会使代码复杂/超出内存我会保持简单,并为此 - 这样,你可以替换源文件,它会正常工作。

+0

我将自己创建问题,所以我完全可以控制。我想知道在什么时候切换到使用数据库vs加载内存中的所有内容......是否有您推荐的阈值? – 2014-10-02 20:01:22

+4

那么,给出一个问题,例如“卡通人物查理布朗的狗的名字是什么?”与答案“史努比”你消耗64个字节的内存的问题+答案。 10000这个长度+答案的问题将消耗640000字节的内存(大致),这是0.64兆字节。在字典中你应该得到O(1)查找时间(非常快),而0.64兆字节很小。 我认为核心数据或sqlite绑定会过于个人化 – davbryn 2014-10-02 20:07:50

+0

完全是我以后的信息类型,谢谢davbryn! – 2014-10-02 20:23:47