蘋果手機為了保證自己的資料上的絕對安全.設計了沙盒檔案,每乙個應用程式都配備了自己的沙盒檔案,每一次執行,資料夾的名字就會變成乙個沒有任何規律的字串,
第乙個引數:當前要前往哪乙個資料夾,前往 documents 檔案用 nsdocumentdirectory,64行那個,還可以前往caches資料夾,對應68行;
第二個引數:訪問的資料夾型別,指定訪問是使用者資料夾
第三個引數:絕對路徑(yes),相對路徑(no);絕對路徑是給系統來使用的,系統可以根據當期那的路徑找到資料夾,我們在操作檔案的時候都是在用絕對路徑,
相對路徑自會把要前往的資料夾顯示出來,其他部分是~,告訴程式設計師要去那個檔案
nsaray *sandbox =nssearchpathfordirectoriesindomains(nscachesdirestory,nsuserdomainmask,yes);
把簡單物件寫入到本地,簡單物件指定是nsstring,nsarray等
1.先通過陣列獲取沙盒路徑
nsarray *sandbox = nssearchpathfordirectoriesindomains(nsdocumentdirectory,nsuserdomainmask,yes);
//從陣列中獲取沙盒路徑
nsstring *sandboxpath = sandbox[0];
//給要寫入的檔案拼接乙個路徑,拼接的方式有兩種
或者兩者的區別是第一種的加 / 第二種不用
2.把字串寫入到本地
nsstring *str = @"過道小高哈哈哈";
//把字串寫入到本地 第乙個引數是檔案要儲存的路徑,第二個是檔案進行保護 yes 第三個是檔案的錯誤資訊
[str writetofile:documentpath atomically:yes encoding:nsutf8stringencoding error:nil];
如果路徑下有對應檔案,則會把原來問價覆蓋,如果沒有則是建立乙個新的檔案;
把沙盒檔案再讀取出來
nsstring *tempstr = [nsstring stringwithcontensoffile:document encoding:nsutf8stringencoding error:nil];
同樣把陣列和字典寫入到本地方法一樣,姿勢在讀取的時候得用相同型別的讀取
複雜物件寫入到本地,主要指我們自己建立的物件寫入到本地,也叫歸檔和反歸檔操作.
//歸檔操作
//之前定義乙個student類並建立物件
student *stu = [student stuentwithname:@"高高姐" ***:@"未知" age:88 hobby:@"奇哥"];
//1.通過陣列沙盒
nsarray *sandbox = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes);
//2.用字串接受沙盒路徑
nsstring *sandboxpath = sandbox[0];
//3.接受資料夾路徑,這個檔案的副檔名時任意
//4.對物件進行歸檔操作
//第乙個引數:要實施歸檔的物件
//第二個引數:路徑
[nskeyedarchiver archiverrootobject:stu tofile:documentpath];
//反歸檔操作
student *newstudent [nskeyedunarchiver unarchiverobjectwithfile:document];
在反歸檔的時候接受者得和我們找到的物件的型別相同
總結:資料持久化的步驟
1.指定前往的資料夾
2.用字串接收路徑
3.拼接檔案路徑
4.寫入本地或者歸檔操作
如果要是複雜物件歸檔,要簽訂nscoding方法,並且實現兩個協議方法,放在陣列裡的複雜物件歸檔也要簽訂協議
當我們想對資料夾進行操作的時候,得通過資料夾管理者 nsfilemanager
//通過檔案管理者對資料夾進行操作
nsarray *sandbox = nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes);
nsstring *sandboxpath = sandbox[0];
//建立乙個檔案管理者
nsfilemanager *manager = [nsfilemanger defaultmanager];
//給要建立的資料夾拼接乙個路徑
//資料夾不需要副檔名
//通過manager進行建立
[manager createdirectoryatpahth:filepath withintermediatedirectories:yes attributes:nil error:nil];
//向新建立的資料夾洗乙個字串
nsstring *str = @"asdfasf";
[str writetofile:strpath atomically:yes encoding:nsutf8stringencoding error:nil];
//移除資料夾
[manager removeitematpath:filepath error:nil];
把資料儲存到本地
student.h import inte ce student nsobject property nonatomic,copy nsstring name property nonatomic,copy nsstring property nonatomic,assign nsinteger a...
IOS 本地儲存 資料持久化
沙盒 其實對於每乙個應用程式,都有唯一的乙個本地檔案與之對應,名字由系統隨機生成.這個檔案就是沙盒 沙盒機制 沙盒機制其實就是,對每乙個應用程式的資源起到乙個保護作用,當前程式不允許訪問其他程式的資源,其他程式也不允許訪問當前程式的資源.對於每乙個 應用程式的沙盒檔案中都包含以下檔案 1.docum...
ajax將後端資料儲存到本地
在前後端分離中,如何辨別使用者和判斷使用者是否登入需要token或者cookie的驗證來判斷使用者的時效性,將後端返回的標識資料儲存到本地,每次請求後端都攜帶該資料以此來分別使用者 ajax 重點必須為乙個變數如 data contenttype success function data if d...