详解iOS开发中app的归档以及偏好设置的存储方式

2020-01-14 18:27:16于海丽

    [aCoder encodeDouble:self.height forKey:@"height"];
}

// 当从文件中读取一个对象的时候就会调用该方法
// 在该方法中说明如何读取保存在文件中的对象
// 也就是说在该方法中说清楚怎么读取文件中的对象
-(id)initWithCoder:(NSCoder *)aDecoder
{
    NSLog(@"调用了initWithCoder:方法");
    //注意:在构造方法中需要先初始化父类的方法
    if (self=[super init]) {
        self.name=[aDecoder decodeObjectForKey:@"name"];
        self.age=[aDecoder decodeIntegerForKey:@"age"];
        self.height=[aDecoder decodeDoubleForKey:@"height"];
    }
    return self;
}
@end


3.打印效果和两个重要的错误提示

 

点击保存按钮和读取按钮,成功打印结果如下:

详解iOS开发中app的归档以及偏好设置的存储方式

关于不实现两个协议方法的错误提示:
-(void)encodeWithCoder:(NSCoder *)aCoder方法:

详解iOS开发中app的归档以及偏好设置的存储方式

-(id)initWithCoder:(NSCoder *)aDecoder方法:

详解iOS开发中app的归档以及偏好设置的存储方式

三、继承类中的使用

新建一个学生类,让这个类继承自Preson这个类,增加一个体重的属性。

YYstudent.h文件

复制代码