天天看點

iOS - OC NSKeyedArchiver 資料歸檔前言1、系統類的歸檔/反歸檔2、自定義類的歸檔和反歸檔3、NSKeyedArchiver 序列化

在 OC 語言中,歸檔是一個過程,即用某種格式來儲存一個或多個對象,以便以後還原這些對象。通常,這個過程包括将(多個)對象寫入檔案中,以便以後讀取該對象。可以使用歸檔的方法進行對象的深複制。

采用歸檔的形式來儲存資料,該資料對象需要遵守 NSCoding 協定,并且該對象對應的類必須提供 encodeWithCoder: 和 initWithCoder: 方法。前一個方法告訴系統怎麼對對象進行編碼,而後一個方法則是告訴系統怎麼對對象進行解碼。

缺點:歸檔的形式來儲存資料,隻能一次性歸檔儲存以及一次性解壓。是以隻能針對小量資料,而且對資料操作比較笨拙,即如果想改動資料的某一小部分,還是需要解壓整個資料或者歸檔整個資料。

iOS 實作的序列化方式的兩種:NSKeyedArchiver,NSPropertyListSerialization。在這兩種序列化方式中,NSData 都是序列化的目标。兩種方式的不同點在于 NSPropertyListSerialization 是針對數組和字典類型的,而 NSKeyedArchiver 是針對對象的。

Dog.h

Dog.m

main.m