zoukankan      html  css  js  c++  java
  • 自定义类的归解档

    @interface Student : NSObject

    @property (strong,nonatomic) NSString *name;

    @property (assign,nonatomic) int age;

    @property (assign,nonatomic) char sex;

    -(Student *)initWithDictionary:(NSDictionary *)dic;

    @end

    @implementation Student

    -(Student *)initWithDictionary:(NSDictionary *)dic

    {

        self = [super init];

        if (self) {

            self.name = dic[@"name"];

            self.age = [dic[@"age"] intValue];

            self.sex = [dic[@"sex"] charValue];

        }

        return self;

    }

    @end

    @implementation ViewController

    - (void)viewDidLoad {

        [super viewDidLoad];

       

        NSDictionary *dic = @{@"name":@"lisi",@"age":@"30",@"sex":@'M'};

        Student *stu = [[Student alloc] initWithDictionary:dic];

        //归档

        NSString *path = [NSTemporaryDirectory() stringByAppendingPathComponent:@"student.tt"];

        

        NSMutableData *data = [NSMutableData data];

        NSKeyedArchiver *keyArcher = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];

        [keyArcher encodeObject:stu.name forKey:@"name"];

        [keyArcher encodeInt:stu.age forKey:@"age"];

        [keyArcher encodeInt:stu.sex forKey:@"sex"];

        

        [keyArcher finishEncoding];

        BOOL bol = [data writeToFile:path atomically:YES];

        NSLog(@"%d",bol);

        NSLog(@"%@",path);

        

        

        

        //解档

        

        NSData *data1 = [NSData dataWithContentsOfFile:path];

        NSKeyedUnarchiver *keyUn = [[NSKeyedUnarchiver alloc] initForReadingWithData:data1];

        

        NSString *name = [keyUn decodeObjectForKey:@"name"];

        int age = [keyUn decodeIntForKey:@"age"];

        char sex = [keyUn decodeIntForKey:@"sex"];

        

        NSLog(@"name = %@,age = %d,sex = '%c'",name,age,sex);

       

    }

  • 相关阅读:
    小于65535的数字编码(端口验证)
    js利用 iframe 或 a 标签连接下载文件
    vue 强制更新局部dom
    vue中js里的/* eslint-disable*/及其ESLint的介绍
    css取消双击选中文字
    Number.EPSILON
    js判断对象是否为空对象的几种方法
    python实现批量城市经纬度查询
    python基础知识之状态的储存和调用(即json和pickle)
    python基础知识之内置函数
  • 原文地址:https://www.cnblogs.com/wujie123/p/5304582.html
Copyright © 2011-2022 走看看