建立一對.h&.m檔案nsobject
.h中遵守nscoding協議+定義屬性
在.m檔案中
//反序列比
-(id)initwithcoder:(nscoder *)adecoder
return self;
}//序列比
-(void)encoderwithcoder:(nscoder *)acoder
在需要使用的地方(.m)使用呼叫
//歸檔
//person物件-> nsdata -> writetofile
//建立物件
person *person = [person new];//new 和alloc一樣
person.name = @"dharni";
person.age = 25;
//可變資料 歸檔過程
nsmutabledata *muldata = [nsmutabledata data];
nskeyedarchiver *archiver = [[nskeyedarchiver alloc] initforwritingwithmutabledata:muldata];
[archiver encodeobject:person forkey:@"person"];
[archiver finishencoding];
//寫入檔案
[muldata writetofile:persondatapath atomically:yes];
nslog(@"persondatapath_____%@",persondatapath);
//反歸檔
//從檔案裡邊讀取 --> nsdata --> person物件
nsdata *persondata = [nsdata datawithcontentsoffile:persondatapath];
nskeyedunarchiver *unarchiver = [[nskeyedunarchiver alloc] initforreadingwithdata:persondata];
person *person1 = [unarchiver decodeobjectforkey:@"person"];
nslog(@"name______%@ age_________%ld",person1.name,person1.age);
另一種方法:
//儲存簡單資料
nsuserdefaults *defaults = [nsuserdefaults standarduserdefaults];
[defaults setobject:@"123" forkey:@"username"];
nslog(@"ker====%@",[defaults objectforkey:@"username"] );
歸檔以及反歸檔
歸檔和反歸檔 複雜的物件我們並不能通過writetofile型別的方法寫入到檔案中。這裡的複雜物件指的是在foundation框架內部存在的資料類,這個負載物件至少包含有乙個例項物件 如果想要進行歸檔和反歸檔操作,則必須遵守 協議 我們在歸檔和解檔操作時,每乙個需要乙個鍵.並且歸檔時是什麼鍵,那麼解...
歸檔, 反歸檔, 清除快取
1.寫巨集的時候可以建乙個只有header的標頭檔案 2.pragma mark 如果想要實現歸檔和反歸檔的操作需要簽訂乙個協議nscoding void encodewithcoder nscoder acoder id initwithcoder nscoder adecoder return ...
IOS開發中的歸檔與反歸檔
歸檔 是物件的 一種序列化 方式,對模型物件進 行歸檔 的技術可以輕鬆將複雜的物件寫 入 檔案,然後再從 檔案 中讀取它們。要求類中要進 行歸檔的屬性或者成員變數是基本資料類 型 如 int或 float 等 或者符合 nscoding 協議的某個類 的物件 如 nsstring 或nsarray ...