//自定義物件實現協議
.m 檔案內實現2個方法 (例子)
-(void)encodewithcoder:(nscoder *)acoder
- (id)initwithcoder:(nscoder *)adecoder
return self;
}//歸檔自定義的型別
person *tom = [[person alloc]initwithname:@"tom" andage:12];
person *tom2 = [[person alloc]initwithname:@"tom2" andage:12];
person *tom3 = [[person alloc]initwithname:@"tom3" andage:12];
nsmutablearray *classarr = [nsmutablearray array];
[classarr addobject:tom];
[classarr addobject:tom2];
[classarr addobject:tom3];
nsstring *path = @"/users/administrator/desktop/class.plist";
bool flag = [nskeyedarchiver archiverootobject:classarr tofile:path];
if (flag)
else
return 0;
//foundation框架自帶型別的歸檔和解歸檔
//nsstring物件
nsstring *name = @"tom";
nsstring *str = [[nsstring alloc]initwithformat:@"hello,%@",name];
//給定路徑
nsstring *path = @"/users/administrator/desktop/str";
bool flag = [str writetofile:path atomically:yes encoding:nsutf8stringencoding error:nil];
if (flag)
nsstring *string = [nsstring stringwithcontentsoffile:path];
//nsarray歸檔
[fruits writetofile:arrpath atomically:yes];
//解歸檔
//使用乙個plist檔案進行初始化,建立陣列
nsarray *list = [nsarray arraywithcontentsoffile:arrpath];
nslog(@"list= %@",list);
nsdictionary *ranklist = [nsdictionary dictionarywithobjectsandkeys:@"90",@"xiaowang",@"60",@"xiaoli",@"21",@"xiaokang", nil];
nsstring *dicpath = @"/users/administrator/desktop/ranlist.plist";
//nsdictionary歸檔
[ranklist writetofile:dicpath atomically:yes];
//nsdictionary解歸檔
nsdictionary *ranklist2 = [nsdictionary dictionarywithcontentsoffile:dicpath];
void file()
else
else
}
歸檔和解檔
針對於歸檔和解檔,在日常工作當中用的不多,但是它的原理很重要,所以有必要我們重點學習一下 歸檔是 寫入磁碟前將自定義物件轉換成二級制資料,解檔是 將磁碟上的二級制資料轉換成自定義物件 1.建立乙個person物件,寫屬性,遵守協議 在person.h檔案中 import inte ce person...
歸檔和解檔
歸檔 encoder 它是將自定義的物件寫入磁碟前將物件轉成二進位制然後存入磁碟。解檔 decoder 它是將磁碟上儲存的二進位制資料轉換成自定義物件。eg 自定義乙個person物件 h 檔案中 property nonatomic,copy nsstring name property nona...
歸檔和解檔 Archiver
一 概念 1.歸檔用於儲存物件,包括被歸檔物件之間的各種相互關係或者依賴性。解檔用於重建以前歸檔的物件與關係。在其它物件導向的語言中,一般使用術語 序列化 來描述歸檔解檔模式。2.歸檔的物件通常儲存為二進位制資料,可以在記憶體或者磁碟中讀取,寫入。不過在cocoa中,也有一些物件使用xml檔案進行歸...