在iOS App開發過程當中常常須要操做一些須要持續性保留的數據,好比用戶對於App的相關設置、須要在本地緩存的數據等等。本文針對OC中常用的一下存儲方式作了個整理。sql
經常使用的存儲工具/方式: 數組
NSUserDefaults類緩存
Plist文件 app
解歸檔框架
手動存放沙盒iphone
// sqlite函數
CoreData 工具
第三方數據存儲框架spa
通常對於一些基本的用戶設置,由於數據量很小,咱們可使用OC語言中的 NSUserDefaults類來進行處理。使用方法很簡單,只須要調用類中的方法便可:3d
NSUserDefaults類除了能夠存儲數組、字典、NSdata外,還能夠直接存儲OC基本類型屬性。可是不能直接做用到自定義對象,若是是自定義對象須要進行歸檔操做,這裏後面會講到。
Plist文件做爲Xcode的一種資源包,也能夠做爲一種存儲工具。
1.在項目中建立Plist文件。 在項目中建立的好處是文件的可視化,咱們能夠很直觀的看到文件的內容,同時Xcode還提供了直接操做文件的功能。便於咱們對文件內容的增刪改查。這種方式的缺點是項目中的plist文件通常做爲固態的數據形勢保存,對於常常須要改動的數據就很差操做了。
獲取文件中的數據代碼
2.代碼讀寫Plist文件。避免了在項目中建立Plist文件致使不便更改的麻煩。
以前說了,不論是NSUserDefaults 或者是 plist 都不能對自定義的對象進行存儲,OC提供瞭解歸檔剛好解決這個問題。 解歸檔針對的是一個對象,假設咱們如今有一個TestModel的類,須要進行歸檔和接檔,上代碼。
對象的.h文件
對象的.m文件
接下來只要使用解/歸檔輔助類就能夠TestModel類進行解歸檔
運行代碼以後 打印
iphone沙箱模型的有四個文件夾,分別是documents,tmp,app,Library。
一、Documents 目錄:您應該將全部的應用程序數據文件寫入到這個目錄下。這個目錄用於存儲用戶數據或其它應該按期備份的信息。爲了避免讓App的備份過於龐大,咱們不建議在這裏存放大容量的文件。
二、AppName.app 目錄:這是應用程序的程序包目錄,包含應用程序的自己。因爲應用程序必須通過簽名,因此您在運行時不能對這個目錄中的內容進行修改,不然可能會使應用程序沒法啓動。
三、Library 目錄:這個目錄下有兩個子目錄:Caches 和 Preferences
Preferences 目錄:包含應用程序的偏好設置文件。您不該該直接建立偏好設置文件,而是應該使用NSUserDefaults類來取得和設置應用程序的偏好.
Caches 目錄:用於存放應用程序專用的支持文件,保存應用程序再次啓動過程當中須要的信息。細心的話你會發現幾乎全部的第三方框架的緩存信息處理都在這個文件中,通常的大容量文件都放在這裏。
四、tmp 目錄:這個目錄用於存放臨時文件,保存應用程序再次啓動過程當中不須要的信息。Nsuserdefaults保存的文件通常在tmp文件夾裏。
獲取這些目錄路徑的方法:
1,獲取家目錄路徑的函數:
2,獲取Documents目錄路徑的方法:
3,獲取Caches目錄路徑的方法:
4,獲取tmp目錄路徑的方法:
沙盒中只能保存OC中的基本數據,自定義的對象不能直接存入。 存入方式以下。
打印如圖: