在ios開發(fā)數(shù)據(jù)保存

在ios開發(fā)數(shù)據(jù)保存

ID:35787470

大小:14.52 KB

頁數(shù):8頁

時間:2019-04-18

在ios開發(fā)數(shù)據(jù)保存_第1頁
在ios開發(fā)數(shù)據(jù)保存_第2頁
在ios開發(fā)數(shù)據(jù)保存_第3頁
在ios開發(fā)數(shù)據(jù)保存_第4頁
在ios開發(fā)數(shù)據(jù)保存_第5頁
資源描述:

《在ios開發(fā)數(shù)據(jù)保存》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、在iOS開發(fā)過程中,不管是做什么應(yīng)用,都會碰到數(shù)據(jù)保存的問題。將數(shù)據(jù)保存到本地,能夠讓程序的運(yùn)行更加流暢,不會出現(xiàn)讓人厭惡的菊花形狀,使得用戶體驗(yàn)更好。下面介紹一下數(shù)據(jù)保存的方式:?1.NSKeyedArchiver:采用歸檔的形式來保存數(shù)據(jù),該數(shù)據(jù)對象需要遵守NSCoding協(xié)議,并且該對象對應(yīng)的類必須提供encodeWithCoder:和initWithCoder:方法。前一個方法告訴系統(tǒng)怎么對對象進(jìn)行編碼,而后一個方法則是告訴系統(tǒng)怎么對對象進(jìn)行解碼。例如對Possession對象歸檔保存。定義Possession:?@interfacePossession:NSOb

2、ject{//遵守NSCoding協(xié)議NSString*name;//待歸檔類型?}@implementationPossession-(void)encodeWithCoder:(NSCoder*)aCoder{[aCoderencodeObject:nameforKey:@"name"];?}?-(void)initWithCoder:(NSCoder*)aDecoder{name=[[aDeCoderdecodeObjectforKey:@"name"]retain];?}歸檔操作:如果對Possession對象allPossession歸檔保存

3、,只需要NSCoder子類NSKeyedArchiver的方法archiveRootObject:toFile:即可。NSString*path=[selfpossessionArchivePath];[NSKeyedArchiverarchiveRootObject:allPossessionstoFile:path]解壓操作:同樣調(diào)用NSCoder子類NSKeyedArchiver的方法unarchiveRootObject:toFile:即可allPossessions=[[NSKeyedUnarchiverunarchiveObjectWithFile:path]

4、retain];缺點(diǎn):歸檔的形式來保存數(shù)據(jù),只能一次性歸檔保存以及一次性解壓。所以只能針對小量數(shù)據(jù),而且對數(shù)據(jù)操作比較笨拙,即如果想改動數(shù)據(jù)的某一小部分,還是需要解壓整個數(shù)據(jù)或者歸檔整個數(shù)據(jù)。2.NSUserDefaults:用來保存應(yīng)用程序設(shè)置和屬性、用戶保存的數(shù)據(jù)。用戶再次打開程序或開機(jī)后這些數(shù)據(jù)仍然存在。NSUserDefaults可以存儲的數(shù)據(jù)類型包括:NSData、NSString、NSNumber、NSDate、NSArray、NSDictionary。如果要存儲其他類型,則需要轉(zhuǎn)換為前面的類型,才能用NSUserDefaults存儲。具體實(shí)現(xiàn)為:保存數(shù)據(jù):?

5、NSUserDefaults*defaults=[NSUserDefaultsstandardUserDefaults];?NSString*name=@”defaultstring?[defaults“;setObject:firstNameforKey:@"name"];?//獲得UIImage實(shí)例??UIImage*image=[[UIImagealloc]initWithContentsOfFile:@"photo.jpg"];??NSData*imageData=UIImageJPEGRepresentation(image,100);//UIImage對象轉(zhuǎn)換

6、成NSData??[defaultssynchronize];//用synchronize方法把數(shù)據(jù)持久化到standardUserDefaults數(shù)據(jù)庫讀取數(shù)據(jù):NSUserDefaults*defaults=[NSUserDefaultsstandardUserDefaults];?NSString*name=[defaultsobjectForKey:@"name"];//根據(jù)鍵值取出name?NSData*imageData=[defaultsdataForKey:@"image"];?UIImage*Image=[UIImageimageWithData:ima

7、geData];//NSData轉(zhuǎn)換為UIImage?3.Write寫入方式:永久保存在磁盤中。具體方法為:第一步:獲得文件即將保存的路徑:?NSArray*documentPaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);//使用C函數(shù)NSSearchPathForDirectoriesInDomains來獲得沙盒中目錄的全路徑。該函數(shù)有三個參數(shù),目錄類型、hedomainmask、布爾值。其中布爾值表示是否

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。