Pages

Saturday, February 26, 2011

NSUserDefaults customize behavior to match a user’s preferences

NSUserDefaults class 提供了一個介面來方便跟系統預設儲存的值互動存取。Default system 允許我們開發的 iPhone app 可以來客製化管理使用者喜歡設定。舉個例子,我們可以幫使用者辨別多少數量要預設顯示,有多少檔案要自動化儲存。

應用程式會紀錄指派值給參數儲存進入使用者預設的資料庫。而這參數是可以用來參考使用者辨別系統起來狀態或者要顯示的預設狀態。

在程式運作 Runtime,我們可以用 NSUserDefaults 物件來讀取出來使用,NSUserDefaults 會幫我們 caches 資訊避免每次要資料都要開開關關資料庫,裡面有 synchronize method 可以自動的幫我們確保記憶體裡面 cache 有和 user default 資料同步。

NSUserDefaults 提供了非常方便的 method 可以來取得 floats, doubles, integers, Booleans 和 URLs。如果想要儲存其他類型的物件,我們要把它用 NSData 來 archive 起來。

Defaults database 會自動的幫每位使用者建立,NSUserDefaults 物件是 thread-safe  的。

取值方式

存值方式

如果以上有將 NSUserDefaults 和存取的 key 統一命名管理好,在開發上即可既方便且不會亂的使用了。像是今天要開發我的個人書架,我們即可儲存使用者目前擁有幾本書、喜好清單、收藏起來幾本,如果這些資訊都要跟 Server 存取,但是如果能先放一些在 NSUserDefaults 裡面,這樣在下次適當時機更新在改寫正確值,如此一來我們要統計值,任何時候呼叫多少次,都不用擔心效能速度問題了。

No comments:

Post a Comment