我正在開發我的第一個iPhone應用程序,並且在實現用戶偏好的同時,我有幾個關於如何最好地實現這個問題的問題。在iPhone MVC應用程序中處理用戶首選項的最佳做法?
假定基本MVC模式:存儲在模型對象的MainView顯示數據; MainViewController處理應用邏輯。
對於選擇,我有一個OptionsView和OptionsViewController。 RootViewController處理Main和Options視圖的交換。
首先,選項數據呢?我想創建一個NSOjbect派生類來存儲它們(一個OptionsModel)嗎?或者,也許一個簡單的NSDictionary就足夠了?
二,誰擁有期權數據?它們是應用程序首選項,但將它們存儲在AppDelegate中似乎是錯誤的。 MainViewController主要關心這些選項,而OptionsViewController需要對它們進行編輯,但這些人不會彼此瞭解,也不應該這樣做。 RootViewController知道兩者,所以他很好地通過它們之間的選項,但是再次,這似乎是錯誤的。
最後,MainViewController將經常需要訪問的選項。他應該每次調用選項模型來獲得選項,還是緩存自己的副本?我不喜歡額外開銷檢索選項數據的想法,但讓MainViewController具有不同步的副本也不太吸引人。
briankc,這非常有幫助,謝謝。但是我仍然想知道從OptionsViewController將編輯它們的選項傳遞給需要知道它們何時更改的MainViewController。 OptionsViewController可以通過寫NSUserDefaults的他們,然後發送NSNotification,將由MainViewController被拾起,然後將讀取的NSUserDefaults的選項。這是否合理? – zpasternack 2009-06-07 19:36:29