1、首先该对象需要遵守NSCoding协议 2、直接上代码
//归档
-(void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:self.type forKey:@"type"];
[aCoder encodeObject:self.id forKey:@"id"];
[aCoder encodeObject:self.createDate forKey:@"createDate"];
[aCoder encodeObject:self.content forKey:@"content"];
[aCoder encodeObject:self.modifyDate forKey:@"modifyDate"];
[aCoder encodeObject:self.sendType forKey:@"sendType"];
[aCoder encodeObject:self.title forKey:@"title"];
[aCoder encodeObject:@(self.isNewMessage) forKey:@"isNewMessage"];
}
//解档
-(instancetype)initWithCoder:(NSCoder *)aDecoder{
if (self = [super init]) {
self.type = [aDecoder decodeObjectForKey:@"type"];
self.id = [aDecoder decodeObjectForKey:@"id"];
self.createDate = [aDecoder decodeObjectForKey:@"createDate"];
self.content = [aDecoder decodeObjectForKey:@"content"];
self.modifyDate = [aDecoder decodeObjectForKey:@"modifyDate"];
self.sendType = [aDecoder decodeObjectForKey:@"sendType"];
self.title = [aDecoder decodeObjectForKey:@"title"];
self.isNewMessage = [[aDecoder decodeObjectForKey:@"isNewMessage"] boolValue];
}
return self;
}
3、保存
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *filePath = [docPath stringByAppendingPathComponent:@"messages.data"];
BOOL isTrueWrite = [NSKeyedArchiver archiveRootObject:messagesData toFile:filePath];
4、读取
NSArray *arr = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
for (MessageModel *model in arr) {
NSLog(@"%@",model.title);
}