归档和解档

Animal.m

#import "Animal.h"

@interface Animal ()<NSCoding>

@end

@implementation Animal

-(instancetype)initWithCoder:(NSCoder *)aDecoder {
    self = [super init];
    if (self) {
        self.name = [aDecoder decodeObjectForKey:@"kname"];
    }
    return self;
}
- (void)encodeWithCoder:(NSCoder *)aCoder {
    [aCoder encodeObject:self.name forKey:@"kname"];
}
@end

ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    Animal *ani = [Animal new];
    ani.name = @"animal_name";
    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/ani.plist"];
    NSLog(@"%@", path);
    //第一次没有创建文件
    if (![NSKeyedUnarchiver unarchiveObjectWithFile:path]) {
        [NSKeyedArchiver archiveRootObject:and toFile:path];
    }
    [NSKeyedArchiver archiveRootObject:ani toFile:path];
    
    Animal *ani2 = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
    NSLog(@"----->%@", ani2.name);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关键词: 归档:数据持久化的一种方式,是将数据进行编码序列化之后存储的过程。适用于小量数据的存储。 解档:对归档的...
    追沐阅读 1,567评论 0 1
  • OC的序列化和反序列化就是用来存储对象和访问对象。序列化就是通过归档把对象转化成二进制文件。反序列化就是通过解档把...
    a浮生若梦a阅读 641评论 0 2
  • 数据本地持久化时, 一般会将模型进行归档, 从本地获取数据时, 需要解档下面使用runtime的方式进行归档解档,...
    伯wen阅读 218评论 0 0
  • 一、归档介绍 1.归档是指用某种格式来保存一个或多个对象,以便以后还原这些对象的过程。归档是将数据持久化的一种方式...
    lilinjianshu阅读 877评论 0 0
  • 如果你实现过自定义模型数据持久化的过程,那么你也肯定明白,如果一个模型有许多个属性,那么我们需要对每个属性都实现一...
    曾经像素有点低阅读 18,111评论 2 10