IOS 物件序列化(NSCoder)

2021-07-01 19:48:05 字數 1549 閱讀 2257

物件系列化要點

1.資料模型類的建立,並且在資料模型類中實現協議

//序列化所呼叫的方法

nslog(@"-*****=------1111");

//編碼的是該物件的屬性

[acoderencodeobject:self.nameforkey:@"name_key"];

[acoderencodeobject:self.numberforkey:@"number_key"];

//反序列化所呼叫的方法

self= [superinit];

if(self)

returnself;

//把該物件儲存到本地

//1.建立的乙個可變data,將來存放序列化(編碼)的資料的

nsmutabledata*data = [[nsmutabledataalloc]init];

//建立乙個序列化的物件,並且告訴這個物件,序列化後的資料所存放的地方

nskeyedarchiver*archiver = [[nskeyedarchiveralloc]initforwritingwithmutabledata:data];

//2.開始序列化,並指定乙個key

[archiverencodeobject:userforkey:@」user_key」];

//3.結束序列化

[archiverfinishencoding];

//4.指定乙個儲存路徑

//儲存data

[datawritetofile:pathatomically:yes];

//5.解決記憶體問題

[datarelease];

[archiverrelease];

以下為反序列化

//1.去儲存的序列化資料

//判斷檔案是否存在

if([[nsfilemanagerdefaultmanager]fileexistsatpath:path]) {

//獲取路徑中的data資料

nsdata*data = [nsdatadatawithcontentsoffile:path];

//2.告訴反序列化物件,需要解碼哪些資料

nskeyedunarchiver*unarchiver = [[nskeyedunarchiveralloc]initforreadingwithdata:data];

//3.根據指定的key取出原來存放的物件

zyuser*user = [unarchiverdecodeobjectforkey:@"user_key"];

//class test = nsclassfromstring(@"zyuser");

//4.結束反序列化

[unarchiverfinishdecoding];

//5.解決記憶體問題

[unarchiverrelease];

self.nametf.text= user.name;

self.numbertf.text= user.number;

物件序列化 反序列化

必須新增引用 using system.io using system.runtime.serialization using system.runtime.serialization.formatters.binary 方法 region 物件序列化 物件序列化 任意物件 字串 public st...

物件 序列化 反序列化

public class eventmessage 資訊提示類 型別1 操作日誌2 安全日誌 標題 內容 icon型別 url 執行script指令碼字串 需加 public static void messagebox int m type,string m title,string m body...

iOS 序列化和反序列化

摘自 開篇 1到底這個序列化有啥作用?物件導向的程式在執行的時候會建立乙個複雜的物件圖,經常要以二進位制的方法序列化這個物件圖,這個過程叫做archiving.二進位製流可以通過網路或寫入檔案中 於某教材的一段話 本人的理解是當你於寫資料需要本地儲存時,即將你的資料寫到硬碟上的時候,你就必須對他進行...