歸檔與解檔 archiver與Unarchiver

  • 自定義的類需要實現(xiàn)NSCoding協(xié)議中的initWithCoder:和encodeWithCoder:方法

    • initWithCoder:中使用[coder encodeXXX:property forKey:@“XXX”]歸檔
    • encodeWithCoder:中使用 property = [coder decodeXXXForKey:@“XXX”];return obj;解檔
  • 系統(tǒng)對象可以直接使用

  • 單個對象歸檔與解檔

    • 使用[NSKeyedArchiver archivedDataWithRootObject:obj]歸檔為data或者使用[NSKeyedArchiver archiveRootObject:obj toFile:path]直接歸檔并寫入文件
    • 使用[NSKeyedUnarchiver unarchiveObjectWithData:data]解檔數(shù)據(jù)或者[NSKeyedUnarchiver unarchiveObjectWithFile:file]從文件中解檔
  • 批量歸檔與解檔

    • 歸檔

      • 使用[[NSKeyedArchiver alloc]initForWritingWithMutableData:dataM]方法以 NSMutableData對象為參數(shù)創(chuàng)建NSKeyedArchiver對象
      • 重復(fù)使用[archiverObj encodeXXX: forKey:@“XXX”]歸檔所有對象
      • [archiverObj finishEncoding]結(jié)束歸檔,dataM包含被歸檔對象的數(shù)據(jù)
    • 解檔

      • 使用[[NSKeyedUnarchiver alloc] initForReadingWithData:data]創(chuàng)建NSKeyedUnarchiver對象
      • 重復(fù)使用[UnarchiverObj decodeXXXForKey:@“XXX”]解檔對象
      • [UnarchiverObj finishDecoding]結(jié)束解檔
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容