IOS初级:NSKeyedArchiver
NSKeyedArchiver对象归档
首先要实现<NScoding>里面的两个代理方法initWithCoder,encodeWithCoder @property (nonatomic, copy) NSString *keyName; /* 将某个对象写入文件时候会调用 在这个方法中说清楚哪些属性需要存储 */ - (void)encodeWithCoder:(NSCoder *)encoder{ [encoder encodeObject:self.keyName forKey:@"KeyName"]; } /* 解析对象会调用这个方法 需要解析哪些属性 */ - (id)initWithCoder:(NSCoder *)decoder{ if (self = [super init]) { self.name = [decoder decodeObjectForKey:@"KeyName"]; } return self; } //宏定义一个数据存储路径 #define MyDataFilePath [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"myApp.data"] @property (nonatomic, strong) NSMutableArray *myAppArr; //从归档提取数据 _myAppArr = [NSKeyedUnarchiver unarchiveObjectWithFile:MyDataFilePath]; //将数据归档保存 [NSKeyedArchiver archiveRootObject:self.myAppArr toFile:MyDataFilePath];