2011-04-29 36 views
0

我有一個表(詞典字典)來存儲整數映射到字符串。我有類型和子類型。例如鍵入1 =>水果和子類型1 =>蘋果。如何存儲相對靜態但可配置的信息

映射應該可以在我的設置界面中進行配置,但是對於應用程序的重置來說,它是相當靜態的。所以我不想每次檢查映射時都從屬性列表讀取數據。我想只在程序啓動時只讀一次,只有在用戶更改設置時才寫入。

我應該在運行時保存這張表嗎?我有兩種方法: (1)是將整個表作爲變量放在應用程序委託中,在這種情況下,每次需要獲取字符串時都需要使用objectForKey兩次。 (2)是用靜態變量創建一個類(不知道如何去做),並使用類方法來獲得映射,例如+(NSString)stringForType:subType:

您能評估這兩種方法還是提出更好的解決方案?非常感謝!

+0

你有什麼理由不想每次都讀plist嗎?如果字典足夠大以至於每次讀取磁盤都太慢,那麼它可能太大而無法保存在內存中。 – conmulligan 2011-04-29 01:44:44

+0

如果我每次都從plist讀書,會不會很慢?考慮如果我把它放在viewDidLoad中。 – leo 2011-04-30 03:22:08

+0

閱讀和寫作plists是驚人的快。爲什麼不放棄它並簡介它?您可以隨時在後臺線程中執行此操作,並在加載時顯示活動指示器。 – conmulligan 2011-04-30 04:29:12

回答

0

把它放在哪裏並不重要,只要你保留它的一個副本,你應該檢查的重要的事情是valueForKeyPath:。如果你存放在一個plist中,並且經常保存到plist,那麼你就擁有持久性的好處。您可以使用[NSUserDefaults standardUserDefaults];對象自動獲取該對象。