




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、一、了解NSUserDefaults以及它可以直接存儲的類型 NSUserDefaults是一個單例,在整個程序中只有一個實(shí)例對象,他可以用于數(shù)據(jù)的永久保存,而且簡潔有用,這是它可以讓數(shù)據(jù)自由傳遞的一個前提,也是大家寵愛用它保存簡潔數(shù)據(jù)的一個主要緣由。 使用 NSUserDefaults 存儲自定義對象的最初,我們必需生疏NSUserDefaults可以存儲哪一些類型的數(shù)據(jù),下面一一列出:NSUserDefaults支持的數(shù)據(jù)類型有:NSNumber(NSInte
2、ger、float、double),NSString,NSDate,NSArray,NSDictionary,BOOL. 假如想要將上述數(shù)據(jù)類型的數(shù)據(jù)永久保存到NSUserDefaults中去,只需要簡潔的操作(一個Value 一個Key ),例如,想要保存一個NSString的對象,代碼實(shí)現(xiàn)為: /將NSString 對象存儲到 NSUserDefaults 中 NSString *p
3、assWord = "1234567" NSUserDefaults *user = NSUserDefaults standardUserDefaults; user setObject:passWord forKey:"userPassWord" 將數(shù)據(jù)取出也很簡潔,只需要取出key 對應(yīng)的值就好了,代碼如下:
4、; NSUserDefaults *user = NSUserDefaults standardUserDefaults; NSString *passWord = user objectForKey:"userPassWord" 留意:對相同的Key賦值約等于一次掩蓋,要保證每一個Key的唯一性 值得留意的是: NSUserDef
5、aults 存儲的對象全是不行變的(這一點(diǎn)格外關(guān)鍵,弄錯的話程序會出bug),例如,假如我想要存儲一個 NSMutableArray 對象,我必需先創(chuàng)建一個不行變數(shù)組(NSArray)再將它存入NSUserDefaults中去,代碼如下: NSMutableArray *mutableArray = NSMutableArray arrayWithObjects:"123","234", nil;
6、60;NSArray * array = NSArray arrayWithArray:mutableArray; NSUserDefaults *user = NSUserDefaults standardUserDefaults; user setObject:array forKey:"記住存放的肯定是不行變的"
7、; 取出數(shù)據(jù)是一樣的,想要用NSUserDefaults中的數(shù)據(jù)給可變數(shù)組賦值先給出一個錯誤的寫法: /*-錯誤的賦值方法-*/ NSUserDefaults *user = NSUserDefaults standardUserDefaults; /這樣寫后,mutableArray 就變成了不行變數(shù)組了,假如你要在數(shù)組中添加或刪除數(shù)據(jù)就
8、會消滅bug NSMutableArray *mutableArray = user objectForKey:"記住存放的肯定是不行變的" 正確的寫法: /*-正確的賦值方法-*/ NSUserDefaults *user = NSUserDefaults standardUserDefaults; &
9、#160; /可以用alloc 方法代替 NSMutableArray *mutableArray = NSMutableArray arrayWithArray:user objectForKey:"記住存放的肯定是不行變的" 二、使用 NSUserDefaults 存儲自定義對象1、將自定義類型轉(zhuǎn)換為NSData類型 當(dāng)數(shù)據(jù)重復(fù)而且多的時候(例如想
10、存儲全班同學(xué)的學(xué)號,姓名,性別(這個數(shù)據(jù)量可能太大了 ),假如不用SQLite 存儲 (多數(shù)據(jù)最好還是用這個),你可以選擇使用歸檔,再將文件寫入本地,但是這種方式和 NSUserDefaults 比起來麻煩多了(由于NSFileManage 原來就挺簡單) ,但是問題是,NSUserDefaults 本身不支持自定義對象的存儲,不過它支持NSData的類型,下面舉一個例子來介紹。 我們先建立一個叫Student 的類,這個類里有三個屬性(學(xué)號,姓名,性別),如圖:我們要做的就是將Student類型變成NSData類型 ,那么就必需實(shí)現(xiàn)歸檔:這里
11、要實(shí)現(xiàn) 在.h 文件中申明 NSCoding 協(xié)議,再 在 .m 中實(shí)現(xiàn) encodeWithCoder 方法 和 initWithCoder 方法就可以了 : .h 中修改文件如圖 : .m中加入代碼 :這樣做就可以將自定義類型轉(zhuǎn)變?yōu)镹SData類型了 2、將自定義類型數(shù)據(jù)存入 NSUserDefaults 中 假如要存儲全班同學(xué)的信息,我們可以建一個NSMutableArray 來存放全班同學(xué)的信息(里面存儲的全是NSData對象)在需要存儲的地方加入代
12、碼:/首先,要建立一個可變數(shù)組來存儲 NSDate對象 Student *student = Student alloc ini; /下面進(jìn)行的是對student對象的 name , studentNumber ,sex 的賦值 =
13、"lady-奕奕" student.studentNumber = "3100104006" student.sex = "女" /這是一個存放全班同學(xué)的數(shù)組 NSMutableArray * dataArray = NSMut
14、ableArray arrayWithCapacity:50; /將student類型變?yōu)镹SData類型 NSData *data = NSKeyedArchiver archivedDataWithRootObject:student; /存放數(shù)據(jù)的數(shù)組將data加入進(jìn)去 &
15、#160;dataArray addObject:data; 假如你只想存一個人的信息,你可以直接將NSData存入NSUserDefaults中 : NSData *data = NSKeyedArchiver archivedDataWithRootObject:student; NSUserDefaults *user =&
16、#160;NSUserDefaults standardUserDefaults; user setObject:data forKey:"oneStudent" 假如你想存儲全班同學(xué)的信息,你還要用一個for循環(huán)將data 放入 dataArray中,這里具體的操作就不實(shí)現(xiàn)了,只給出存放的代碼: /記住要轉(zhuǎn)換成不行變數(shù)組類型 NSArray * array =
17、0;NSArray arrayWithArray:dataArray; NSUserDefaults *user = NSUserDefaults standardUserDefaults; user setObject:array forKey:"allStudent" 從NSUserDefaults中取出數(shù)據(jù)在還原也很簡潔例如還原一個同學(xué)的數(shù)據(jù):NSUserDefaults *user = NSUserDefaults standardUserDefaults
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)小蜂年度中國肉類生產(chǎn)及分布數(shù)據(jù)分析報告
- 2025年工業(yè)互聯(lián)網(wǎng)平臺SDN優(yōu)化與5G通信技術(shù)在工業(yè)互聯(lián)網(wǎng)中的應(yīng)用報告
- 2025年農(nóng)業(yè)灌溉用水高效利用與水資源優(yōu)化配置報告
- 2025年綠色供應(yīng)鏈管理在調(diào)味品制造業(yè)的應(yīng)用與推廣研究報告
- 智能礦山無人作業(yè)系統(tǒng)在煤炭開采中的應(yīng)用研究與發(fā)展報告
- 2025年線下演出市場復(fù)蘇后的經(jīng)濟(jì)效益與社會影響研究報告
- 基于區(qū)塊鏈技術(shù)的2025年零售企業(yè)數(shù)字化供應(yīng)鏈協(xié)同安全報告
- 06年司法局上半年工作總結(jié)
- 2025年裝配式建筑部品部件生產(chǎn)流程優(yōu)化與標(biāo)準(zhǔn)化創(chuàng)新案例分析報告
- 核電項(xiàng)目日常管理制度
- 智慧社區(qū)人臉識別門禁系統(tǒng)改造方案
- 小學(xué)生反洗錢知識講座
- 痛風(fēng)結(jié)石病人的術(shù)后護(hù)理
- 室內(nèi)拆除及裝修方案
- 養(yǎng)殖業(yè)技術(shù)知識培訓(xùn)課件
- 慢性傷口護(hù)理中的柔性可穿戴設(shè)備應(yīng)用
- 學(xué)生心理健康一生一策檔案表
- 2025年商洛柞水縣城鄉(xiāng)供水有限公司招聘筆試參考題庫含答案解析
- 浙江首考2025年1月普通高等學(xué)校招生全國統(tǒng)考政治試題及答案
- 實(shí)訓(xùn)美容手術(shù)操作基本技術(shù)美容外科學(xué)概論講解
- 學(xué)校消防安全管理與突發(fā)事件處置
評論
0/150
提交評論