IOS中的本地儲存

2021-06-27 19:41:11 字數 2233 閱讀 7875

資料本地儲存的本質其實就是把資料儲存成檔案, 儲存到程式的沙盒中.

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...