本地儲存資料

2021-10-01 20:14:07 字數 2862 閱讀 3446

直接將資料寫在**裡,不是一種合理的做法,如果資料經常改,就要經常翻開對應的**進行修改,造成**擴充套件型低

因此,可以考慮將經常變的資料放在檔案中進行儲存,程式啟動後從檔案中讀取最新的資料,如果要變動資料,直接修改資料檔案即可,不用修改**

一般可以使用屬性列表檔案儲存nsarray或者dictionary之類的資料,這種「屬性列表檔案」的副檔名是plist,因此也稱為「plist檔案」。

每乙個應用都有自己的應用沙盒(應用沙盒就是檔案系統目錄,與其他檔案系統隔離。應用必須待在自己的沙盒裡,其他應用不能訪問該沙盒)。

nslog

(@"%@"

,nshomedirectory()

);//獲得沙盒路徑

應用程式包:包含了所有的資源檔案和可執行檔案

documents:儲存應用執行時生成的需要持久化的資料,itunes同步裝置時會

備份該目錄,例如,遊戲應用可將遊戲存檔儲存在該目錄。

tmp:儲存應用執行時所需的臨時資料,使用完畢後再將相應的檔案從該目錄

刪除。應用沒有執行時,系統也可能會清除該目錄下的檔案。itunes同步

裝置時不會備份該目錄

library/caches:儲存應用執行時生成的需要持久化的資料,itunes同步裝置時不會備份

該目錄。一般儲存體積大、不需要備份的非重要資料

library/preference:儲存應用的所有偏好設定,ios的settings(設定)應用會在該目錄

中查詢應用的設定資訊,itunes同步裝置時會備份該目錄。

//獲取沙盒根目錄

nsstring *str =

nshomedirectory()

;//獲取document目錄

//第二個引數:搜尋的範圍

//第三個引數:是否展開路徑(在ios開發中不識別~),所以要傳yes

nsstring *path =

nssearchpathfordirectoriesindomains

(nsdocumentdirectory, nsuserdomainmask, yes)[0

];//拼接乙個全路徑

nsstring *filepath =

@"data.plist"];

nslog

(@"%

@,filepath)

;//寫入沙盒

[dataarr writetofile:filepath atomically:yes]

;

很多ios應用都支援偏好設定,比如儲存使用者名稱,密碼,字型大小等,ios提供了一套標準的解決方案來為應用加入偏好設定功能。

每個應用都有個nsuserdefault例項,通過它來訪問偏好設定

比如:儲存使用者名稱,字型大小,是否自動登入

//nsuserdefaults 儲存的也是乙個plist檔案

nsuserdefaults *defaults =

[nsuserdefault standarduserdefaults]

;[deafult setobject:

@"xmg" forkey:

@"name"];

[defaults synchronize]

;//同步到檔案中

//不用設定儲存路徑,系統自動建立

讀取:

[deafult objectforkey:

@"name"];

[deafult integerforkey:

@"age"

];

//plist和偏好設定只能儲存字典和陣列,在plist檔案中不能儲存自定義的物件

//偏好設定本質也是儲存的plist檔案

nsstring *temppath =

nstempoarydirectory()

;nsstring *filepath =

@"person.data"];

//字尾名可以隨便起

[nskeyedarchiver archiverootobject:per tofile:filepath]

;//要儲存物件,必須先在物件中實現encodewithcoder這個方法。告訴要儲存當前物件的哪些方法。先遵守encoding協議-(

void

)encodingwithcoder:

(nscoder *

)acoder

讀取資料:

person *per =

[nskeyedunarchiver unarchiveobjectwithfile:filepath]

;//解檔的時候會呼叫initwithcoder方法

nslog

(@"%@"

,per)

;//讀取的時候還要實現物件的initwithcode方法,當解析乙個檔案的時候呼叫,告訴當前要解析檔案當中哪些屬性

-(instancetype)initwithcoder:

(nscoder *

)adecoder

return

self;}

//initwithcoder方法:

//只有遵守了nscoding協議,才有initwithcoder方法,所以不能呼叫父類的initwithcoder方法。

//當解析檔案的時候會呼叫initwithcoder方法,

//awakefromnib方法時從xib載入完畢的時候呼叫,會在initwithcoder之後呼叫,initwithcoder只會建立view,並不會載入view中的控制項,所以,如果列印的話是空的。

android 本地儲存資料

string prefs name lmn.com string itemuser username string itempass password string itemcheck check 一 儲存 sharedpreferences settings getsharedpreference...

資料本地儲存方法

儲存到本地的資料型別有 陣列,字典,字串,物件型別的 1 字串的本地儲存 nsstring str dsadasd nsarray arr nssearchpathfordirectoriesindomains nslibrarydirectory,nsuserdomainmask,yes nsst...

Web 本地儲存和Vue本地儲存例項

資料的設定和讀取比較方便。容量較大,sessionstorage大約為5mb,localstorage大約為20mb。只能儲存字串,若想要儲存json物件,則可以使用window.json.stringify 或者parse 進行序列化和反序列化編碼 sessionstorage的儲存週期只有一次會...