那麼ios的資料化持久方式有哪些呢?
1:屬性列表(plist檔案),nsuserdefault今天重點說下歸檔和結檔的問題2:歸檔(nskeyedarchiver)
3:資料庫(sqlite,coredata,fmdb(第三方))
歸檔的三種方式:
1:對foundation框架的物件進行歸檔下邊舉簡單的例子分別說下歸檔的三種方式2:對自定義的物件進行歸檔
3:對自定義內容進行歸檔
注意:歸檔生成的檔案是加密的
#pragma mark---對自定義物件進行歸檔反歸檔----
- (void)archive
//反歸檔(由叫反序列化)的步驟
//對person類物件進行反歸檔時執行此方法.並對person類中想要進行反歸檔的所有屬性,進行反序列化操作
- (instancetype)initwithcoder:(nscoder *)adecoder
return self;
} */
person *per = [person new];
per.name = @"甲甲";
per.age = @"20";
per.gender = @"女";
//歸檔
//1:準備路徑
nsstring *path = nshomedirectory();
//2:準備儲存資料物件(用可變陣列進行接收)
nsmutabledata *data = [nsmutabledata new];
//3:建立歸檔物件
nskeyedarchiver *archiver = [[nskeyedarchiver alloc]initforwritingwithmutabledata:data];
//4:開始歸檔
[archiver encodeobject:per forkey:@"person"];
//5:完成歸檔
[archiver finishencoding];
//6:寫入檔案
bool result = [data writetofile:path atomically:yes];
if (result)
//反歸檔
//1:獲取解檔路徑
nsdata *mydata = [nsdata datawithcontentsoffile:path];
//2:建立反歸檔物件
nskeyedunarchiver *unarchiver= [[nskeyedunarchiver alloc]initforreadingwithdata:mydata];
//3:反歸檔
person *aper = [person new];
aper = [unarchiver decodeobjectforkey:@"person"];
//4:結束歸檔
[unarchiver finishdecoding];
nslog(@"%@",aper.name);
}
#pragma mark----對foundation框架中的物件進行歸檔和反歸檔
- (void)fundationclass
//反歸檔
nsarray *newarray = [nskeyedunarchiver unarchiveobjectwithfile:path];
nslog(@"框架的結檔%@",newarray);
}
#pragma mark----對自定義的內容進行歸檔和反歸檔
- (void)customcontent
nsdata *newdata = [nsdata datawithcontentsoffile:path];
nskeyedunarchiver *unkeyed = [[nskeyedunarchiver alloc]initforreadingwithdata:newdata];
// nsstring *str1 = [unkeyed decodeobjectforkey:@"name"];
// nsstring *str2 = [unkeyed decodeobjectforkey:@"gender"];
// nsstring *str3 = [unkeyed decodeobjectforkey:@"age"];
person *pp = [person new];
pp.name = [unkeyed decodeobjectforkey:@"name"];
pp.gender = [unkeyed decodeobjectforkey:@"gender"];
pp.age = [unkeyed decodeobjectforkey:@"age"];
[unkeyed finishdecoding];
nslog(@"name:%@ gender:%@ age:%@",pp.name,pp.gender,pp.age);
// nslog(@"name:%@ gender:%@ age:%@",str1,str2,str3);
資料持久化,歸檔,反歸檔
資料持久化的本質 將資料讀成檔案儲存在本地 沙盒機制 就是系統針對每個應用程式在本地生成的資料夾 名字隨機生成 對於不同的應用程式 不能訪問其他應用程式沙盒的內容 起到保護作用 1 documents 用來儲存長久儲存的資料 b perferences 儲存使用者的偏好設定 比如程式是否是第一次啟動...
IOS之資料持久化(歸檔與反歸檔)
物件歸檔的檔案是保密的磁碟上無法檢視檔案中的內容,而屬性列表是明文的可以檢視 物件歸檔有兩種方式 1 對foundat中物件進行歸檔 乙個檔案只能儲存乙個物件 2 自定義物件歸檔 可以儲存多個物件 下面是自定義歸檔 類的.h檔案中遵守協議 宣告三個物件 import inte ce student ...
iOS資料持久化,寫入,歸檔和反歸檔
資料夾裡寫入字串 nsstring guyu 宇 guyu writetofile guyustr atomically yes encoding nsutf8stringencoding error nil nslog guyustr 把陣列,字典寫入到本地 nsarray sandbox 1 2...