博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 自定义的对象类型的解档和归档
阅读量:5164 次
发布时间:2019-06-13

本文共 1768 字,大约阅读时间需要 5 分钟。

自定义的对象的解档和归档

 


如果想对自己自定义的类进行解档和归档的话 必须遵循一个协议:NSCoding

Student.h 文件

#import 
@interface Student : NSObject
@property(nonatomic,strong)NSString *name;@property(nonatomic,assign)int age;-(instancetype)initWithName:(NSString *)name AndAge:(int)age;@end

Student.m 文件

#import "Student.h"@implementation Student- (instancetype)initWithName:(NSString *)name AndAge:(int)age{    self = [super init];    if (self) {        _age=age;        _name=name;    }    return self;}//解答时候调用 是一个初始化的方法-(instancetype)initWithCoder:(NSCoder *)aDecoder{    self=[super init];    if (self) {        _name=[aDecoder decodeObjectForKey:@"name"];        _age=(int)[aDecoder decodeIntegerForKey:@"age"];    }    return self;}//归档调用该方法-(void)encodeWithCoder:(NSCoder *)aCoder{    NSLog(@"encodeWithCoder");    [aCoder encodeObject:_name forKey:@"name"];    [aCoder encodeInteger:_age forKey:@"age"];    }-(NSString *)description{    return [NSString stringWithFormat:@"name=%@,age=%d",_name,_age];}@end

客户端代码

#import "ViewController.h"#import "Student.h"#define PATH [NSHomeDirectory() stringByAppendingPathComponent:@"Student.qll"]@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    NSLog(@"%@",PATH);        Student *stu=[[Student alloc]init];    stu.name=@"张F";    stu.age=13;    NSLog(@"%@",stu);    //归档  BOOL bol=[NSKeyedArchiver archiveRootObject:stu toFile:PATH];        if (bol==1) {        NSLog(@"归档成功");    }    //解档        Student *stu1=[NSKeyedUnarchiver unarchiveObjectWithFile:PATH];    NSLog(@"%@",stu1);}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}@end

运行结果:

 

转载于:https://www.cnblogs.com/qianLL/p/5302910.html

你可能感兴趣的文章
【CF799E】Aquarium decoration 线段树
查看>>
大运飞天 鲲鹏展翅
查看>>
从ECMA到W3C
查看>>
OpenGL(十八) 顶点数组和抗锯齿(反走样)设置
查看>>
Activiti 删除key值相同的所有不同版本的流程定义
查看>>
软件工程--第十六周学习进度
查看>>
yii2 ActiveRecord多表关联以及多表关联搜索的实现
查看>>
搜狗输入法安装--ubuntu
查看>>
ps/2接口键盘的输入及显示
查看>>
在IntelliJ IDEA中安装Junit,TestNG
查看>>
C-Scanf连续调用多次并且存在%c的问题
查看>>
JAVA(二)异常/包及访问权限/多线程/泛型
查看>>
1-4 金币阵列问题
查看>>
设计模式-结构型模式
查看>>
六星经典CSAPP笔记(1)计算机系统巡游
查看>>
css
查看>>
爬取全部的校园新闻
查看>>
第五章 SpringCloud之Eureka-Client使用RestTemplate实现服务之间的调用
查看>>
POJ 1258 Agri-Net (Prim&Kruskal)
查看>>
Swift———a Glance(极客学院)笔记
查看>>