


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、、了解NSUserDefaults以及它可以直接存儲的類型NSUserDefaults是一個單例,在整個程序中只有一個實例對象,他可以用于 數據的永久保存,而且簡單實用,這是它可以讓數據自由傳遞的一個前提,也是 大家喜歡用它保存簡單數據的一個主要原因。使用NSUserDefaults存儲自定義對象的最初,我們必須認識NSUserDefaults可以存儲哪一些類型的數據.下面一一列出:NSUserDefaults 支持的數據類型有:NSNumber (NSInteger、float、double), NSString, NSDate, NS Array, NSDictionary, BOOL如果
2、想要將上述數據類型的數據永久保存到NSUserDefaults中去,只需要 簡單的操作(一個Value 個Key),例如,想要保存一個NSString的對象,代碼 實現為:將 NSString 對象存儲到 NSUserDefaults 中NSString *passWord = "1234567“;NSUserDefaults *user = NSUserDefaults standardUserDefaults;user setObject:passWord forKey:"userPassWord"將數據取出也很簡單,只需要取出key對應的值就好了,代碼如下:
3、NSUserDefaults *user 二NSUserDefaults standardUserDefaults;NSString *passWord = user objectForKey:,userPassWordM;注意:對相同的Key賦值約等于一次覆蓋,要保證每一個Key的唯一性值得注意的是:NSUserDefaults存儲的對象全是不可變的(這一點非常關鍵,弄錯的話程 序會出bug),例如,如果我想要存儲一個NSMutableArray對象我必須先創 建一個不可變數組(NSArray)再將它存入NSUserDefaults中去,代碼如下:NSMutableArray *mutabl
4、eArray = NSMutableArray arrayWithObjects:Hl 23T234: nil;NSArray * array = NSArray array With Array: mu table Array;NSUserDefaults *user = NSUserDefaults standardUserDefaults;user setObject:array forKey:"記住存放的一定是不可變的”;取出數據是一樣的,想要用NSUserDefaults中的數據給可變數組賦值先給出一個錯誤的寫法:NSUserDefaults *user = NSUserD
5、efaults standardUserDefaults;這樣寫后,mutableArray就變成了不可變數組了,如果你要在數組中添 加或刪除數據就會出現bugNSMutableArray *mutableArray = user objectForKey:n記住存放的一定 是不可變的J;正確的寫法:/*正確的賦值方法*/NSUserDefaults *user = NSUserDefaults standardUserDefaults;可以用alloc方法代替NSMutableArray *mutableArray = NSMutableArray array With Array: use
6、 r objectForKeX記住存放的一定是不可變的,;二、使用NSUserDefaults存儲自定義對象1、將自定義類型轉換為NSData類型當數據重復而且多的時候(例如想存儲全班同學的學號,性別(這個數 據量可能太大了).如果不用SQLite存儲(多數據最好還是用這個),你 可以選擇使用歸檔,再將文件寫入本地,但是這種方式和NSUserDefaults比起來 麻煩多了 (因為NSFileManage本來就挺復雜),但是問題是,NSUserDefaults本 身不支持自定義對象的存儲,不過它支持NSData的類型,下面舉一個例子來介 紹。我們先建立一個叫Student的類,這個類里有三個屬
7、性(學號,性別),如圖: / Created by lady-奕奕 on 14-7-24 ./ Copyri<yh.t (c) 2014 1 且dy奕奕 All eights reserved./I«import <Foundation/Foundation h>ginterzace Student : NSObjeerGproperry(monatomic ,rcrain) NSStrirg *rame;(property (nonatomic . retain) NSSrrirg *studentNurrt)er;(property (nonatomic , r
8、etain) NSSuxing *sex;Send我們要做的就是將Student類型變成NSData類型,那么就必須實現歸檔:這里要實現 在.h文件中申明NSCoding協議,再在.m中實現 encodeWithCoder 方法和initWithCoder方法就可以了 :h中修改文件如圖/ Crea.ted. by lady-奕奕 on 14-7-24 ./ Copyright (c) 2014年 Indy-奕奕.All rights reserved. /import <Foundation/Fonndation h>(3Lnt.crrfaoo StudentSpropert:
9、y (non at omi c gproperty(nonatomic gproperty(nonatomic,retain),retain),rorain)NSObjzNSString *rame;NSString *studentNurrber;NSStrir:g *sex;Send.m中加入代碼:/ Cr-eated by 丄ady-奕奕 on 14-7-24 ./ Copyright (e) 201.4年 lady-奕奕 All rights reserved./# import n5tudert .h"6 iir.plemcntation Scudenr|-(voi<
10、i) encodeWithCocier: (NSCoder *') aCoder aCodex encoaeObjecc: self;. narr.e forKey: g nnama n ;aCodex encodeOb jeuti: self studentunber f orKey : 3 HstudcntKurri>cr,r ;aCoder encodeObect: self sex f orKey : $ n sex,f ;-(id)initWithCoder: (NSCoder *)aDecoder(if (self = (super init)(self nani
11、169; 二 (aDecodcr decodeObjectForKey: G Hnr.cH ;self.sti;dentNiirr.ber = aDecoder decodeObjcctForKey:srudenrNurber'1 ; self.sex = (aDecoder decodeObjectrorKey;3nSn;Iret-urn self;end這樣做就可以將自定義類型轉變為NSData類型了2、將自定義類型數據存入NSUseiDefaults中如果要存儲全班同學的信息,我們可以建一個NSMutableArray來存放全班 同學的信息(里面存儲的全是NSData對象)在需要
12、存儲的地方加入代碼:首先,要建立一個可變數組來存儲NSDate對象Stu de nt *stude nt = Student alloc ini;下面進行的是對student對象的name , studentNumber f sex的賦值stude = Jady-奕奕:student.studentNumber = ,3100104006u;student.sex ='女:這是一個存放全班同學的數組NSMutableArray * dataArray = NSMutableArray array With Cap acity: 50;將student類型變為NSData
13、類型NSData *data = NSKeyedArchiver archivedDataWithRo otObject:student;存放數據的數組將data加入進去dataArray addObject:data;如果你只想存一個人的信息,你可以直接將NSData存入NSUserDefmults中NSData *data = NSKeyedArchiver archivedDataWithRootObject:studen t;NSUserDefaults *user = NSUserDefaults standardUserDefaults;user setObject:data forKey:HoneStudent”;如果你想存儲全班同學的信息,你還要用一個for循環將data放入dataArray 中,這里具體的操作就不實現了,只給出存放的代碼:記住要轉換成不可變數組類型NS Array * array = NSArray array With Array: dataArray;NSUserDefaults *user = NSUserDefaults standardUserDefaults;user setObject:array forKey:HallStudent”;從NSUserDefaults中取出數據在還原也很簡單 例如還原一個學生的數據:NS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學生會督察部工作總結(6篇)
- 網絡設備管理的最佳實踐試題及答案
- 深度探索2025年軟件設計師考試試題及答案
- 城市更新項目全方位可行性評估報告
- 保障性租賃住房項目發展前景分析
- 行政法與犯罪預防的法律關系試題及答案
- 鐵路公用協議書
- 車主簽名協議書
- 返修祖屋協議書
- 2025年食品產業鏈食品安全追溯體系創新應用研究報告
- DL-T5554-2019電力系統無功補償及調壓設計技術導則
- 女生穿搭技巧智慧樹知到期末考試答案章節答案2024年南昌大學
- 大熊貓的介紹
- 正常肝臟CT解剖
- 英語國家商務國情 知到智慧樹網課答案
- 2024年廣西來賓高投發展集團有限公司招聘筆試沖刺題(帶答案解析)
- 衛生部婦產科診療規范及指南
- 正畸病例匯報模板
- 科學小實驗手搖發電機原理
- 中華民族共同體概論課件專家版10第十講 中外會通與中華民族鞏固壯大(明朝時期)
- 臨建施工方案
評論
0/150
提交評論