iOS簡單的資料持久化

2021-07-05 08:50:21 字數 2435 閱讀 4807

首先,我們要了解: 什麼是資料持久化?  我們為什麼要做資料持久化?

ios中常用的資料持久化方法有四種: 屬性列表, 物件歸檔, sqlite, coredata.

當程式執行後, 資料是儲存在記憶體中的, 當程式關閉後, 記憶體會釋放掉, 從而這些資料也會丟失. 因為這些資料都是臨時的.

打個比方: 臨時資料相當於是公司的車, 在需要你開車去辦工的時候給你用一下, 用完了就要馬上還回去. 而永久性的資料相當於你自己的車, 想怎麼開怎麼開.(ps:當然還是要遵守交通規則的).

資料持久化的本質其實就是將資料儲存成檔案, 儲存到程式的沙盒中.

nsstring

*sandboxpath =

nshomedirectory();//獲取當前應用程式的沙盒主路徑

nsstring

*tmppath =

nstemporarydirectory

();//獲取臨時資料夾路徑

nsstring

*docpath1 = [sandboxpath

:@"documents"

];//因為沙盒資料夾中包含有三個檔案, 在這裡拼接documents直接指向儲存使用者資料的documents資料夾.

現在我們可以獲取到具體的documents資料夾路徑了

nsarray

*paths =

nssearchpathfordirectoriesindomains

(nsdocumentdirectory

,nsuserdomainmask

,yes

);//通過路徑搜尋函式獲取對應的documents資料夾路徑(ps:注意提示, 不要寫成nsdocumentationdirectory)

這裡有三個引數. 第乙個引數是: 被搜尋的資料夾目錄的列舉值.  第二個引數是: 被搜尋的域(ps:ios開發只有nsuserdomainmask可用).  第三個引數是: 是否顯示完整路徑, 這是乙個bool值, yes表示返回完整路徑, 如果寫的是no得話返回的是:

"~/documents".因為每乙個沙盒路徑中都有乙個documents資料夾, 所以我們需要用完整路徑.

nsstring *documentspath = paths.firstobject;

@"text.tex"

];//

生成文字檔案的儲存路徑

nsstring *string = @"

好想養乙隻二哈

~!";//

建立需要被儲存的字串物件

[string writetofile:textpath atomically:

yes 

encoding:nsutf8stringencodingerror:

nil];

//將字串寫入對應路徑的檔案

執行程式後, 會將字串新增到命名為text的.txt檔案中, 因為沒有text.txt, 所以會建立乙個text.txt檔案.

同理,我們可以對nsarray, nsdictionary, nsdata等類及其子類的物件寫入到指定路徑的檔案. 檔案的型別可以是多種. 在這裡比較多用的是

xml(可擴充套件標記語言)

//指定陣列的檔案儲存路徑

@"array.plist"

];nsarray

*array = @[@"duke", @"douglas", @"leo"];

//呼叫陣列的writetofile:atomically:方法將陣列內容寫入到檔案中

[array writetofile:arraypath atomically:yes];

//定義乙個字典的檔案儲存路徑

@"dic.plist"

];//建立字典物件

nsdictionary

*dic = @;

//呼叫字典中定義的例項方法writetofile:atomically:將字典的內容寫入到對應路徑的檔案中

[dic writetofile:dicpath atomically:yes];

uiimage*image = [uiimageimagenamed:

@"image"

];nsdata

*imagedata =

uiimagejpegrepresentation

(image, 0.2);//0~1 代表了壓縮百分比

];//將二進位制位元組流物件寫入到檔案中

[imagedata writetofile:imagepath atomically:yes];

對於複雜的物件無法通過writetofile:方法進行資料持久化. 我們需要通過歸檔或者資料庫等

iOS 資料持久化 資料庫的簡單使用

資料庫是資料持久化的一種方法之一,今天簡單的來了解一下它的實用方法以及注意事項 我們所使用到的資料庫因為經常要對資料庫裡的資料進行操作,如果頻繁的開啟,關閉資料庫,可能會引發資料庫卡死,所以我們只要開啟資料庫,不用關閉,程式結束,會自動關閉資料庫 第一步,新增 libsqlite3.dylib 類庫...

iOS終端資料持久化

ios有很多資料持久化技術,包括傳統的資料庫,但也有一些較新的技術,它主要的持久化技術有 資料庫 屬性列表 物件歸檔和。本節將分別介紹這四種持久化方式,輔助本文在設計與實現中針對不同的需求選擇合適的資料持久化方式。資料庫技術被廣泛的使用在各大系統中,資料庫也是乙個系統的核心部分,資料庫管理系統如今發...

iOS 資料持久化 Plist

獲取plist檔案位址 nsstring path nsbundle mainbundle pathforresource people oftype plist 獲取plist檔案內容 乙個字典 nsdictionary dict nsdictionary dictionarywithconten...