資料本地儲存的本質其實就是把資料儲存成檔案, 儲存到程式的沙盒中.
ios中的沙盒機制是一種安全機制
沙盒的本質 其實也是資料夾
通常沙盒中包含四個資料夾bundle, document, library, tmp
1.bundle
bundle裡面存放的是 **, 資源檔案 和配置檔案.
注:內容在程式執行期間為唯讀,不能進行任何修改.
2.document
document有大小限制, 一般只存放資料庫
3.library
library 分為倆個資料夾
caches和 preference
caches 裡一般存放快取, 網路資料快取
preference 裡一般存放 nsuserdfault裡的東西
4.tmp
臨時性資料夾, 資料用完就刪
資料儲存也分為簡單資料儲存和複雜資料儲存
一.簡單資料儲存 :nsstring nsdictionary nsarray nsdata
//存入資料
//首先需要知道所儲存的路徑,
nsarray *array = nssearchpathfordirectoriesindomains(nslibrarydirectory, nsuserdomainmask, yes);
nsstring *path = [array lastobject];
nsstring *fielpath = [nsstring stringwithformat:@"%@/mine",path];
nsstring *str = @"abc";
之後將資料儲存到指定路徑
[str writetofiel:fielpath atomically:yes encoding:nsutf8string error:nil];
//讀取資料
//同樣需要獲得儲存路徑
nsarray *array = nssearchpathfordirectoriesindomains(nslibrarydirectory, nsuserdomainmask, yes);
nsstring *path = [array lastobject];
nsstring *fielpath = [nsstring stringwithformat:@"%@/mine",path];
nsdata *data = [nsdata datawithcontentsoffiel:fielpath];
nsstring *str = [[nsstring alloc] initwithdata:data encoding:nsutf8string];
二 .複雜資料儲存 :model
//存入資料
//需要先將model類的物件歸檔為 nsdata型別的物件,然後將nsdata進行儲存
#import "mymodel"
mymodel *model = [[mymodel alloc] init];
nsdata *data = [nskeyedarchiver archiveddatewithrootobject:model];
nsarray *array = nssearchpathfordirectoriesindomains(nslibrarydirectory, nsuserdomainmask, yes);
nsstring *path = [array lastobject];
nsstring *fielpath = [nsstring stringwithformat:@"%@/mine",path];
[data writetofiel:fielpath atomically:yes encoding:nsutf8string error:nil];
//讀取資料
nsarray *array = nssearchpathfordirectoriesindomains(nslibrarydirectory, nsuserdomainmask, yes);
nsstring *path = [array lastobject];
nsstring *fielpath = [nsstring stringwithformat:@"%@/mine",path];
nsdata *data = [nsdata datawithcontentsoffiel:fielpath];
mymodel *model = [nskeyedunarchiver unarchiveobjectwithdata:data];
iOS中本地儲存
用於儲存建立工程時 開發過程中 所新增的檔案或 等所有內容 開發過程中可以修改資料夾的內容 在執行過程中不可以修改 2 documents 在整個應用程式的生命週期內 將程式的資料存到蘋果官方的資料中 一般儲存資料庫 3 library 存放快取 4tmp 臨時性儲存 向本地儲存資料的過程 系統自帶...
Ios本地儲存(筆記)
乙個應用程式包含以下三個檔案 nsbundle 包 nsbundle資料夾 用來儲存建立工程時候,或者是開發時候所新增的檔案和 也就是工程中左面所有多東西 在 執行的過程中,裡面的所有東西是全都不能修改。documents資料夾 儲存的是在整個應用程式生命週期內一直存在的內容 5g以內 libray...
iOS專案本地儲存NSUserDefault的改進
隨著專案的體積增加,功能增多,從一開始幾個地方使用。到多個地方使用,甚至有幾十處,反正就是有需要的時候就拿來用一下,反正a和b同時管理專案的時候注意儲存時存入不同的key值就可以了。但是這樣至少讓專案看起來不美觀,整理的時候有一種雜亂的感覺,有的同學說,那我用乙個管理類統一管理。把setvaluef...