2014-10-02 74 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