做iOS開發(fā)已經(jīng)快3年了,一直沒有一個書寫的習(xí)慣,那就從今天開始,一點點把所學(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);