偏好設(shè)置
先了解一下存儲空間的問題
RAM:運行內(nèi)存,相當(dāng)于電腦的內(nèi)存
ROM:內(nèi)部存儲空間岗宣,相當(dāng)于電腦的硬盤
SD:外部存儲空間菩鲜,相當(dāng)于電腦的移動硬盤、當(dāng)然胳螟,現(xiàn)在手機(jī)都已經(jīng)不支持SD卡了昔馋。
現(xiàn)在手機(jī)自帶的空間都屬于外部存儲,手機(jī)基本內(nèi)部外部共享同一個存儲設(shè)備糖耸。
//內(nèi)部存儲路徑
所有安裝至手機(jī)的應(yīng)用都會在data/data目錄下生成一個包名文件夾秘遏,這個文件夾就是內(nèi)部存儲路徑
應(yīng)用只能讀寫本應(yīng)用下的文件夾
Android:安裝一個軟件,系統(tǒng)會為該軟件生成一個內(nèi)部存儲空間嘉竟,也就data/data目錄下生成一個包名文件夾邦危,當(dāng)我們卸載該軟件時,該文件夾會被刪除舍扰。
iOS:沙河機(jī)制:出于安全考慮倦蚪,iPhone對于安裝在上面的應(yīng)用程序有所限制,這個限制就是應(yīng)用程序只能在為該改程序創(chuàng)建的文件系統(tǒng)中讀取文件边苹,不可以去其它地方訪問陵且,此區(qū)域被成為沙盒,所以所有的非代碼文件都要保存在此勾给,例如圖像滩报,圖標(biāo),聲音播急,映像脓钾,屬性列表,文本文件等桩警】裳担總體來說沙盒就是一種獨立、安全捶枢、封閉的空間握截。iOS 沙盒機(jī)制
//Android內(nèi)部存儲空間 偏好設(shè)置文件路徑
sharedpreference.png
//iOS沙河 偏好設(shè)置路徑
NSUserDefaults.png
iOS
//key為字符串,value可保存的類型有:
//NSData
//NSString
//NSNumber
//NSDate
//NSArray
//NSDictionary
//存
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// 保存最新版本信息
[defaults setObject:@"1.0.0" forKey:@"differVersionKey"];
[defaults setInteger:10 forKey:@"indexKey"];
[defaults synchronize]; //立即同步進(jìn)行保存
//移除某個鍵key
[defaults removeObjectForKey:@"differVersionKey"];
//取
// 獲取上一次版本
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *lastVersion = [defaults objectForKey:@"differVersionKey"];
//其他常見保存不同類型的方法
/*
- setBool:forKey:
- setFloat:forKey:
- setInteger:forKey:
- setDouble:forKey:
- setURL:forKey:
*/
Android
//偏好設(shè)置
private void sharePerence(){
//sharepreference 原理就是生成xml文件烂叔、以鍵值對的方式存儲
//存 第一個參數(shù)為文件名谨胞,第二個為私有的,因為在內(nèi)部存儲空間進(jìn)行存儲蒜鸡,外界不能訪問
SharedPreferences sp = getSharedPreferences("Database",MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("nameKey","nameValue");
editor.putString("passwordKey","passwordValue");
editor.commit();
// 插入數(shù)據(jù):
// 調(diào)用Editor.putxxxx方法胯努,兩個參數(shù)分別為鍵和值。
// 獲取數(shù)據(jù):
// 調(diào)用Editor.getxxxx方法逢防,兩個參數(shù)分別為鍵和不存在指定鍵時的默認(rèn)值叶沛。
// 刪除數(shù)據(jù):
// 調(diào)用Editor.remove方法,參數(shù)為指定的鍵忘朝。
// 清空所有數(shù)據(jù):
// 調(diào)用Editor.clear方法
// 上述所有方法調(diào)用都要執(zhí)行Editor.commit方法來提交灰署。
//取
SharedPreferences pre = getSharedPreferences("Database",MODE_PRIVATE);
pre.getString("nameKey",""); //第二個參數(shù)為 取不到時的默認(rèn)值
pre.getString("passwordKey","");
}