iOS中資料儲存方式

2021-07-10 13:53:39 字數 3023 閱讀 4310

首先我們來了解一下ios中資料儲存有哪些方式:

* xml

屬性列表(

plist

)歸檔

> plist

全名是:property list,

屬性列表檔案。它是一種用來儲存序列化後的物件的檔案。屬性列表檔案的擴充套件名為

.plist,

因此通常被稱為

plist

檔案。檔案是

xml格式的。它是以

key-value

的形式來儲存資料。

>

可以用來儲存使用者設定,也可以用來儲存一些需要經常用到而不經常改動的資訊。

> plist

只能儲存系統自帶的一些常規的類

, 也就是有

writetofile

方法的物件才可以使用

plist

儲存資料。例如

:nsstring

、nsdictionary

、nsarray

、nsdata

、nsnumber

等型別.   -----重點是這種智慧型儲存系統自帶類

* preference(

偏好設定)

>

偏好設定本質也是

plist。

>

偏好設定是專門用來儲存應用程式的配置資訊

,比如儲存使用者名稱、密碼、字型大小、是否自動登入等小資料量資訊。

>

一般情況不要在偏好設定中儲存其他資料

(比如資料

,或者其他大文字資料

)。如果利用系統的偏好設定來儲存資料

,預設就是儲存在

preferences

資料夾下面的,偏好設定會將所有的資料都儲存到同乙個檔案中。------這裡不要儲存大檔案.

* nskeyedarchiver

歸檔(nscoding)

> nskeyedarchiver

功能非常強大

,使用它類進行物件

(包括自定義的物件

)序列化和反序列化。 *

序列化簡單的理解就是將物件儲存到檔案的過程。 *

反序列化就是將從檔案中讀取物件的過程。  -可以儲存到任意路徑..任意大小

* sqlite3

資料庫

>

比較出名的資料庫有

mysql/oracle/db2/sqlserver/...

這些大型資料庫是用在

pc 電腦上的

,不是用在手機上的。手機上開發用的是嵌入式微型資料庫,就是

sqlite

資料庫。這裡的

3是指資料庫已經發展到第

3個版本了。

>

資料庫儲存資料

優點:相比上面幾種方式

,效率更高。裡面封裝了各種查詢,插入

,刪除,更新資料等演算法

,速度非常快。

缺點:它是關係型資料庫,不是物件型資料庫。物件型資料庫可以直接將乙個物件儲存到資料庫中。關係型資料庫則需要將物件進行解碼

,然後編寫

sql語句來儲存資料

,比較蛋疼。

資料庫一般是用來儲存資料量比較大的專案中。

* core data

>

是蘋果官方提供給開發者專門做資料持久化的框架。它是對

sqlite3

的封裝,使用它不需要編寫任何

sql語句就能夠將

oc物件轉化成資料,儲存在

sqlite3

資料庫檔案中,也能夠將儲存在資料庫中的資料還原成

oc物件。-------也是儲存大資料的..

那麼資料ios將資料儲存在**呢?

每個應用的沙盒目錄都是相似的,主要包含下面

4個目錄:

1>

應用名稱 ①

存放內容

:該目錄包含了應用程式本身的資料,包括資源檔案和可執行檔案等。程式啟動以後,會根據需要從該目錄中動態載入**或資源到記憶體,這裡用到了

lazy loading

的思想。 ②

整個目錄是唯讀的

為了防止被篡改,應用在安裝的時候會將該目錄簽名。非越獄情況下,該目錄中內容是無法更改的;在越獄裝置上如果更改了目錄內容,對應的簽名就會被改變,這種情況下蘋果官網描述的後果是應用程式將無法啟動。

③是否會被

itunes同步:

否   -----應用程式本身的檔案.不可竄改

2> documents

資料夾

①存放內容

:我們可以將應用程式的資料檔案儲存在該目錄下。不過這些資料型別僅限於不可再生的資料。可再生的資料檔案應該存放在

library/cache

目錄下。 ②

是否會被

itunes同步:

是    ---不可再生

3> library

資料夾

3.1 > library/caches ①

存放內容

:主要是快取檔案,使用者使用過程中快取都可以儲存在這個目錄中。那麼這個目錄就用於儲存那些可再生的檔案,比如網路請求的資料。鑑於此

,應用程式通常還需要負責刪除這些檔案。 ②

是否會被

itunes同步:

否。-----快取檔案

3.2 > library/preferences ①

存放內容

:應用程式的偏好設定檔案。我們使用

nsuserdefaults

寫的設定資料都會儲存到該目錄下的乙個

plist

檔案中. ②

是否會被

itunes同步:

是   ---偏好設定

4> tmp

資料夾

①存放內容

:各種臨時檔案,儲存應用再次啟動時不需要的檔案。而且,當應用不再需要這些檔案時應該主動將其刪除,因為該目錄下的東西隨時有可能被系統清理掉,目前已知的一種可能清理的原因是系統磁碟儲存空間不足的時候。 ②

是否會被

itunes同步:

否    ---各種臨時檔案,定期刪除.

ios中的資料儲存方式

1.nskeyedarchiver 採用歸檔的形式儲存資料,該資料物件需要遵守nscoding協議,並且該物件對於的類必須提供encodewithcoder 和initwithcoder 方法。前乙個方法為編碼的方法,後乙個我解碼的方法。2.nsuserdefaults 類似於android中的sh...

ios 資料儲存方式

今天發現一篇好文章,忍不住收藏下來 所謂的持久化,就是將資料儲存到硬碟中,使得在應用程式或機器重啟後可以繼續訪問之前儲存的資料。在ios開發中,有很多資料持久化的方案,接下來我將嘗試著介紹一下5種方案 在介紹各種儲存方法之前,有必要說明以下沙盒機制。ios程式預設情況下只能訪問程式自己的目錄,這個目...

IOS開發中的資料儲存方式

ios 開發中,一般有如下幾種資料儲存方式。需要根據具體的業務場景,選擇 合適的資料儲存方式。1 使用者預設設定 這種情況通常不需要使用者干預,如遊戲通關資訊,video 退出之後,下次進入時,希望恢復到退出時的情況。2 設定束 settings bundle 提供了乙個通過 iphone ipad...