一:Model的.h文件中
//
// PersonModel.h
// NSKeyArchiver归档
//
// Created by on 2019/9/15.
// Copyright © 2019年. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface PersonModel : NSObject
@property(nonatomic,copy)NSString * name;
@property(nonatomic,copy)NSString * age;
@property(nonatomic,copy)UIImage * headImage;
@end
二:Model的.m文件中
#import "PersonModel.h"
@interface PersonModel()<NSCoding>
@end
@implementation PersonModel
//解码
- (instancetype)initWithCoder:(NSCoder *)aDecoder{
self = [super init];
if (self) {
self.name = [aDecoder decodeObjectForKey:@"name"];
self.age = [aDecoder decodeObjectForKey:@"age"];
NSData * imageData = [aDecoder decodeObjectForKey:@"headImage"];
self.headImage = [UIImage imageWithData:imageData];
}
return self;
}
//编码
-(void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:@"小明" forKey:@"name"];
[aCoder encodeObject:@"100" forKey:@"age"];
[aCoder encodeObject:UIImagePNGRepresentation([UIImage imageNamed:@"超级截屏_20190910_224003"]) forKey:@"headImage"];
}
@end
三:ViewController的.m文件中
#import "ViewController.h"
#import "PersonModel.h"
#define kModelKey @"kModelKey"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//序列化
PersonModel * model = [[PersonModel alloc]init];
NSData * data = [NSKeyedArchiver archivedDataWithRootObject:model];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:kModelKey];
//反序列化
NSData * mData = [[NSUserDefaults standardUserDefaults]objectForKey:kModelKey];
PersonModel * mModel = [NSKeyedUnarchiver unarchiveObjectWithData:mData];
NSLog(@"%@",mModel.headImage);
}