iOS之歸檔和解檔

歸檔和解檔


Serialization

什么是Serialization?

  • 寫(xiě)數(shù)據(jù)到本地磁盤或者進(jìn)行傳輸時(shí),需要進(jìn)行序列化,轉(zhuǎn)化成二進(jìn)制流,從而便于傳輸和存儲(chǔ)。同理,得到二進(jìn)制流后,需要進(jìn)行反序列化,還原成可以使用的數(shù)據(jù)。

  • 需要注意的是,不同的環(huán)境,serialize和unserialize是不同的。一般同一環(huán)境中的操作才能得到正確的數(shù)據(jù)。

為什么要Serialization?


  • 數(shù)據(jù)持久化
  • 數(shù)據(jù)共享
    • 程序之間(多進(jìn)程)
    • 跨操作系統(tǒng)的數(shù)據(jù)共享
    • 通過(guò)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳遞
  • 數(shù)據(jù)存儲(chǔ)到磁盤

歸檔


寫(xiě)入到文件時(shí),可以采用下面的方法

1.writeFoFile

采用這種方法可以直接打開(kāi)查看utf-8編碼的haha.txt文件

    NSString *name = @"zhangsan";
    NSString *path = @"/Users/Long/wrk/haha.txt";
    [name writeToFile:path atomically:YES
             encoding:NSUTF8StringEncoding
                error:&error];

2.archiveRootObject

    NSString *name = @"zhangsan";
    NSString *path = @"/Users/Long/wrk/haha.txt";
    [NSKeyedArchiver archiveRootObject:name toFile:path];

打開(kāi)haha.txt, 發(fā)現(xiàn)是如下所示的內(nèi)容

bplist00‘??????    
X$versionX$objectsY$archiverT$top??ü?¢??U$nullXzhangsan_??NSKeyedArchiver—?Troot?????#-27:@I[^c??
e

3.archivedDataWithRootObject

NSString *name = @"zhangsan";
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:name];

解檔

對(duì)NSData數(shù)據(jù)的解檔

[NSKeyedUnarchiver unarchiveObjectWithData:data];

自定義的類歸/解檔

需要實(shí)現(xiàn)<NSCoding>代理方法

- (id) initWithCoder: (NSCoder *)coder
- (void) encodeWithCoder: (NSCoder *)coder
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在昨天看了一個(gè)視頻,講解的是歸檔和解檔,也就是“序列化”和“反序列化”。覺(jué)得自己所學(xué)知識(shí)真是太少了??!底層的東西懂...
    程序猿界的cai渣渣閱讀 743評(píng)論 0 1
  • 在構(gòu)建應(yīng)用程序時(shí),有一個(gè)重要的問(wèn)題是如何在每次啟動(dòng)之間持久化數(shù)據(jù),以便重現(xiàn)最后一次關(guān)閉應(yīng)用前的狀態(tài)。在iOS和OS...
    pro648閱讀 14,005評(píng)論 1 27
  • 關(guān)鍵詞: 歸檔:數(shù)據(jù)持久化的一種方式,是將數(shù)據(jù)進(jìn)行編碼序列化之后存儲(chǔ)的過(guò)程。適用于小量數(shù)據(jù)的存儲(chǔ)。 解檔:對(duì)歸檔的...
    追沐閱讀 1,609評(píng)論 0 1
  • linux資料總章2.1 1.0寫(xiě)的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無(wú)法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,200評(píng)論 2 33
  • 天籟之音,天使吻過(guò)的聲音,給我?guī)?lái)心靈震撼的聲音,聽(tīng)到他的聲音總是有種獨(dú)特的吸引。 正因?yàn)橛兴穆曇舨排惆槲叶冗^(guò)那...
    AI琳姐姐閱讀 275評(píng)論 0 1

友情鏈接更多精彩內(nèi)容