你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS用戶首選項NSUserDefaults淺析

iOS用戶首選項NSUserDefaults淺析

編輯:IOS開發綜合

NSUserDefaults稱為用戶首選項,是一個輕量級的數據存儲機制。關於如何使用,請參考《iOS項目開發實戰——使用用戶首選項數據API存儲信息》《iOS項目開發實戰——使用用戶首選項數據進行啟動提示》這兩篇博客。這裡我們要來分析一下NSUserDefaults的其他特性。

首先NSUserDefaults是單例類,是單例模式的一個實例。在iOS中,單例模式很常見,它用於確保特定類只有一個實例。單例最常用於表示硬件或者操作系統向應用程序提供的服務。

NSUserDefaults類提供了一個默認的系統編程接口進行交互,可以說是最簡單的存儲方式之一。一般用來存儲應用程序相關的偏好設置,配置數據等,以便下次啟動程序之後能恢復上次的設置。而且他可以在程序的任何地方存儲和讀取數據,在運行時,可以使用NSUserDefaults對象讀取應用程序的默認數據庫來獲取數據。NSUSerDefaults具有緩存機制,所以不必在每次讀取數據的時候都打開應用程序的默認設置數據庫。可以通過synchronize方法來使內存中的緩存與系統默認數據庫進行同步。

當然NSUserDefaults也有自己的局限性,他一般用於存儲單條數據,比如程序設置信息,而大量的條目數據一般使用數據庫,大文件的數據使用文件存儲方式。

對象歸檔(NSKeyedArchiver)是將內存中的對象實例保存成磁盤並且可以逆向這個過程以保存用戶的狀態。用處很大,但是比較麻煩,需要在程序設計的時候就把每個類實現NSCoding協議的功能。

 

現在我們來看看NSUserDefaults支持哪些類型,NSNumber(NSInteger,float,double),NSString,NSDate,NSArray,NSDictionary,BOOL. NSUserDedaults也是用鍵值對的形式進行存儲的,如果大家了解過KVC的話,其實也可以理解NSUserDefaults也是屬於KVC的一種。

那麼現在問題來了,這個存儲的數據到底放在哪裡了呢?數據存儲在了該應用程序的沙盒中。首先看一下博客《iOS應用沙盒機制淺析》,關於什麼是應用程序沙盒和獲取沙盒位置,我在博客中有詳細介紹。NSUserDefaults的數據就存儲在沙盒目錄下的 Library/Preferences 文件夾下的plist文件。而且如果你現在正在進行開發調試的話,你還可以手動修改這個plist文件,裡面存儲的數據和你通過代碼寫入的是一模一樣的。

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved