我正在使用NSUserDefaults
'api -registerDefaults
api來註冊我的應用程序的出廠默認設置。對於該應用程序的第一個版本,這一切都很好。但是當我爲iPhone應用程序提供更新時,我有3個標準來確保:NSUserDefaults版本更新的靈活性
- 舊版本應用程序的用戶首選項應該是完整的。
- 應添加特定於新版本的出廠默認值。
- 爲設計提供未來版本更新的靈活性,以便用戶根據新版本默認修改自身。
api -registerDefaults
未在新版本更新中註冊出廠默認值,因爲包含用戶首選項的plist文件已存在於沙箱的/ Library/Preferences中。如果我們用新的出廠默認設置重新設置首選項,則以前版本的用戶首選項將會丟失。
我認爲應該有一個設計模式來處理這種情況,所以一般情況下我們該如何迎合這種情況?蘋果公司是否提供任何固有支持?或者我錯過了一些鏈接,我試着用google搜索沒有任何成功。
感謝, 拉吉
這正是我面臨的問題。我已經想到了你的方法,通過明確地維護一個bool來表明升級已經完成,而我試圖維持用戶默認的應用程序版本。現在又有一個障礙 - 在我的基本版本的應用程序中,有10個項目,如果我在v1.1中添加2個項目,在v1.2中添加2個項目,並且用戶嘗試直接更新到v1.2而不通過v1.1 ,他錯過了v1.1的項目,所以我會在內部更新到v1.1,然後在這種情況下更新到v1.2。但這是每個人都遵循的標準嗎?其他應用程序如何解決這個問題? Thanx – 2010-07-15 06:31:05
我不知道你會怎樣「標準」,但我至少使用過這種模式。另一種稍微簡單的方法就是將任何自定義的重新排序用戶完成,並在升級時設置整個數組,而不是試圖只是零碎地添加新對象。雖然用戶不太友好。 – 2010-07-15 15:45:22
是的,第二種方法不太方便用戶使用,除此之外它還會炸掉所有其他設置。它更好,我會選擇第一種方法。感謝您的建議。 – 2010-07-16 05:47:02