直接將資料寫在**裡,不是一種合理的做法,如果資料經常改,就要經常翻開對應的**進行修改,造成**擴充套件型低
因此,可以考慮將經常變的資料放在檔案中進行儲存,程式啟動後從檔案中讀取最新的資料,如果要變動資料,直接修改資料檔案即可,不用修改**
一般可以使用屬性列表檔案儲存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的儲存週期只有一次會...