首先我們來了解一下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...