iOS 資料的儲存和讀取之歸檔

2021-07-05 11:47:40 字數 1758 閱讀 2571

歸檔四一種很常見的檔案儲存方法,幾乎任何型別的物件都能夠被歸檔儲存(實際上是一種檔案儲存形式)。

使用nskeyedarichiver進行歸檔,用nskeyedunarichiver進行解歸檔。這種方式會在寫入、讀出資料之前堆資料進行序列化、反序列化操作。

一,簡單歸檔 archiverootobject

(1),歸檔

nsstring *homedictionary = nshomedirectory();

//獲取根目錄

];//新增儲存的檔名

bool

flag = [nskeyedarchiver archiverootobject:@」歸檔測試」 tofile:homepath];

//歸檔乙個字串

(2),解歸檔

[nskeyedunarchiver unarchiveobjectwithfile:homepath] ;

缺點:只能把乙個物件歸檔進乙個檔案中。

二,歸檔多個物件

舉例:歸檔cgpoint點、字串和整數,使用encode方法進行,最後再寫入檔案;

(1),歸檔

//歸檔資料

cgpoint point = cgpointmake(320.0, 480.0);  

nsstring *info = @"歸檔測試"

;  nsinteger value = 1000;  

];  

nsmutabledata *data = [[nsmutabledata alloc]init];  

nskeyedarchiver *archvier = [[nskeyedarchiver alloc]initforwritingwithmutabledata:data];  

//對多個物件進行歸檔

[archvier encodecgpoint:point forkey:@"kpoint"

];  

[archvier encodeobject:info forkey:@"kinfo"

];  

[archvier encodeinteger:value forkey:@"kvalue"

];  

[archvier finishencoding];  

[data writetofile:multihomepath atomically:yes]; 

(2),解歸檔

nsmutabledata *datar = [[nsmutabledata alloc]initwithcontentsoffile:multihomepath];  

nskeyedunarchiver *unarchiver = [[nskeyedunarchiver alloc]initforreadingwithdata:dater];  

cgpoint pointr = [unarchiver decodecgpointforkey:@"kpoint"

];  

nsstring *infor = [unarchiver decodeobjectforkey:@"kinfo"

];  

nsinteger valuer = [unarchiver decodeintegerforkey:@"kvalue"

];  

[unarchiver finishdecoding];  

nslog(@"%f,%f,%@,%d"

,pointr.x,pointr.y,infor,valuer);  

限制:歸檔的都是一些基本資料型別。

iOS 使用plist和歸檔儲存資料

1使用plist檔案儲存資料 首先要知道的是,使用plist儲存資料,只能儲存oc自帶的資料字典和陣列,無法儲存自定義的資料model,例子看info.plist的樣式就知道了 將資料儲存到plist檔案中 獲取本地沙盒路徑 nsarray path nssearchpathfordirectori...

iOS 資料儲存 02歸檔多個物件

1 nsdata 1.介紹 使用archiverootobject tofile 方法可以將乙個物件直接寫入到乙個檔案中,但有時候可能想將多個物件寫入到同乙個檔案中,那麼就要使用 nsdata 來進行歸檔物件 nsdata 可以為一些資料提供臨時儲存空間,以便隨後寫入檔案,或者存放從磁碟讀取的檔案內...

iOS資料持久化,寫入,歸檔和反歸檔

資料夾裡寫入字串 nsstring guyu 宇 guyu writetofile guyustr atomically yes encoding nsutf8stringencoding error nil nslog guyustr 把陣列,字典寫入到本地 nsarray sandbox 1 2...