iOS歸檔與反歸檔

做iOS開發(fā)已經(jīng)快3年了,一直沒有一個書寫的習(xí)慣,那就從今天開始,一點(diǎn)點(diǎn)把所學(xué)過的知識記錄下來吧.

歸檔可以對自定義對象進(jìn)行存儲操作

首先自定義一個person對象

@interface Person : NSObject<NSCoding>

@property (nonatomic)NSString *name;

@property (nonatomic)NSInteger age;

@property (nonatomic)NSString *sex;

@end

要遵守NSCoding協(xié)議

接下來是代碼部分

//創(chuàng)建一個person對象

Person *person = [[Person alloc]init];

person.name = @"王韜";

person.sex = @"男";

person.age = 25;

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

NSString *path = NSHomeDirectory();

path = [path stringByAppendingString:@"Singel.plist"];

//2:準(zhǔn)備存儲數(shù)據(jù)對象(用可變數(shù)組進(jìn)行接收)

NSMutableData *data = [NSMutableData new];

//3:創(chuàng)建歸檔對象

NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data];

//4:開始?xì)w檔

[archiver encodeObject:person forKey:@"person"];

//5:完成歸檔

[archiver finishEncoding];

//6:寫入文件

BOOL result = [data writeToFile:path atomically:YES];

if (result) {

NSLog(@"1111");

}

//反歸檔

//1:獲取解檔路徑

NSData *MyData = [NSData dataWithContentsOfFile:path];

//2:創(chuàng)建反歸檔對象

NSKeyedUnarchiver? *unarchiver= [[NSKeyedUnarchiver alloc]initForReadingWithData:MyData];

//3:反歸檔

Person *aper = [Person new];

aper = [unarchiver decodeObjectForKey:@"person"];

//4:結(jié)束歸檔

[unarchiver finishDecoding];

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

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

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

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