1. 程式人生 > >iOS常用的儲存方式

iOS常用的儲存方式

在iOS App開發過程中經常需要操作一些需要持續性保留的資料,比如使用者對於App的相關設定、需要在本地快取的資料等等。本文針對OC中經常使用的一下儲存方式做了個整理。

    常用的儲存工具/方式:  

    NSUserDefaults類

    Plist檔案 

    解歸檔

    手動存放沙盒

// sqlite

    CoreData 

    第三方資料儲存框架

1. NSUserDefaults

    一般對於一些基本的使用者設定,因為資料量很小,我們可以使用OC語言中的 NSUserDefaults類來進行處理。使用方法很簡單,只需要呼叫類中的方法即可:

複製程式碼
 
 

 

 
 

 

 
 

 

 

 
 
 
 

 

 
 

 

 

複製程式碼

      NSUserDefaults類除了可以儲存陣列、字典、NSdata外,還可以直接儲存OC基本型別屬性。但是不能直接作用到自定義物件,如果是自定義物件需要進行歸檔操作,這裡後面會講到。

2. Plist檔案

    Plist檔案作為Xcode的一種資源包,也可以作為一種儲存工具。

    1.在專案中建立Plist檔案。 在專案中建立的好處是檔案的視覺化,我們可以很直觀的看到檔案的內容,同時Xcode還提供了直接操作檔案的功能。便於我們對檔案內容的增刪改查。這種方式的缺點是專案中的plist檔案一般作為固態的資料形勢儲存,對於經常需要改動的資料就不好操作了。

 

 

 

  獲取檔案中的資料程式碼

複製程式碼


複製程式碼

    

 2.程式碼讀寫Plist檔案。避免了在專案中建立Plist檔案導致不便更改的麻煩。

複製程式碼
 
 
  複製程式碼
  
 

 

3.解歸檔

      之前說了,不管是NSUserDefaults 或者是 plist 都不能對自定義的物件進行儲存,OC提供瞭解歸檔恰好解決這個問題。 解歸檔針對的是一個物件,假設我們現在有一個TestModel的類,需要進行歸檔和接檔,上程式碼。

物件的.h檔案

複製程式碼
 
 
  複製程式碼
  
 

物件的.m檔案

複製程式碼


複製程式碼

 

    接下來只要使用解/歸檔輔助類就可以TestModel類進行解歸檔

複製程式碼
 
 
  複製程式碼
  
 

    執行程式碼之後  列印

 

 

4.手動存放沙盒

      iphone沙箱模型的有四個資料夾,分別是documents,tmp,app,Library。
    1、Documents 目錄:您應該將所有的應用程式資料檔案寫入到這個目錄下。這個目錄用於儲存使用者資料或其它應該定期備份的資訊。為了不讓App的備份過於龐大,我們不建議在這裡存放大容量的檔案。
    2、AppName.app 目錄:這是應用程式的程式包目錄,包含應用程式的本身。由於應用程式必須經過簽名,所以您在執行時不能對這個目錄中的內容進行修改,否則可能會使應用程式無法啟動。
    3、Library 目錄:這個目錄下有兩個子目錄:Caches 和 Preferences
         Preferences 目錄:包含應用程式的偏好設定檔案。您不應該直接建立偏好設定檔案,而是應該使用NSUserDefaults類來取得和設定應用程式的偏好.
         Caches 目錄:用於存放應用程式專用的支援檔案,儲存應用程式再次啟動過程中需要的資訊。細心的話你會發現幾乎所有的第三方框架的快取資訊處理都在這個檔案中,一般的大容量檔案都放在這裡。
   4、tmp 目錄:這個目錄用於存放臨時檔案,儲存應用程式再次啟動過程中不需要的資訊。Nsuserdefaults儲存的檔案一般在tmp資料夾裡。
   獲取這些目錄路徑的方法:
   1,獲取家目錄路徑的函式:

 

   2,獲取Documents目錄路徑的方法:

 

   3,獲取Caches目錄路徑的方法:

 

   4,獲取tmp目錄路徑的方法:

 

 沙盒中只能儲存OC中的基本資料,自定義的物件不能直接存入。 存入方式如下。

複製程式碼
 
 
  複製程式碼
  
 

  列印如圖: