序列化和反序列化

//KeyArchiverTest序列化

//存儲(chǔ)plist文件先找到要存儲(chǔ)的path

NSString * filePath = [self filePath];

People * p = [[People alloc] init];

//存儲(chǔ)數(shù)據(jù)的優(yōu)先級(jí)按字節(jié)大小

p.name=@"序列化";

p.longName=@"序列化與反序列化";

p.age= 18;

//先對(duì)它進(jìn)行序列化NSKeyedArchiver歸檔(轉(zhuǎn)化為NSData) NSKeyedArchiver調(diào)用方法archivedDataWithRootObject

//1.BOOL類(lèi)型的方法轉(zhuǎn)化boolValue

//NSData * peopleData1 = [[NSKeyedArchiver archiveRootObject:p toFile:filePath]boolValue];

//2.NSKeyedArchiver

NSData* peopleData = [NSKeyedArchiver archivedDataWithRootObject:p];

//把二進(jìn)制數(shù)寫(xiě)入本地

[peopleData writeToFile:filePath atomically:YES];

//NSLog(@"%@",peopleData);

//反序列化NSKeyedUnarchiver

//NSData * data = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];

//首先要把二進(jìn)制數(shù)據(jù)從文件中讀取出來(lái)

NSData* data = [NSData dataWithContentsOfFile:filePath];

//對(duì)讀取出來(lái)的二進(jìn)制數(shù)進(jìn)行反序列化

People *p1 = [NSKeyedUnarchiver unarchiveObjectWithData:data];

NSLog(@"%@",p1.longName);

NSLog(@"%@",p1.name);

NSString* str = [[NSString alloc] initWithData:people Dataencoding:NSUTF8StringEncoding];

NSLog(@"%@",str);//null

}

- (NSString *)filePath {

//獲得沙盒根目錄

NSString * hamePath =NSHomeDirectory();

//拼接文件路徑

NSString * filePath = [hamePathstringByAppendingString:@"/Documents/arra.plist"];

//返回類(lèi)型

NSLog(@"%@",filePath);

return filePath;

}

最后編輯于
?著作權(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)容

  • Foundation框架的歸檔功能 將對(duì)象存儲(chǔ)轉(zhuǎn)換為二進(jìn)制序列的過(guò)程成為歸檔、打包或編碼,逆變換稱(chēng)為解檔、解碼或?qū)?..
    西門(mén)淋雨閱讀 1,471評(píng)論 0 0
  • //聯(lián)系人:石虎QQ: 1224614774昵稱(chēng):嗡嘛呢叭咪哄 前言 1到底這個(gè)序列化有啥作用? 面向?qū)ο蟮某绦蛟?..
    石虎132閱讀 2,102評(píng)論 0 10
  • 定義以及相關(guān)概念 互聯(lián)網(wǎng)的產(chǎn)生帶來(lái)了機(jī)器間通訊的需求,而互聯(lián)通訊的雙方需要采用約定的協(xié)議,序列化和反序列化屬于通訊...
    Liberalism閱讀 527評(píng)論 0 0
  • 1. Java序列化和反序列化(What) Java序列化(Serialize)是指將一個(gè)Java對(duì)象寫(xiě)入IO流中...
    悠揚(yáng)前奏閱讀 971評(píng)論 2 1
  • 回來(lái)后一直伏在欄桿上看空中的月亮。四圍漸漸地安靜下來(lái)了,漸漸地冰冷清醒。月的美也許就是因?yàn)樗摹拔ㄒ弧焙汀肮陋?dú)”吧...
    冰眉鐵面閱讀 427評(píng)論 1 6

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