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);

       

    }

  • 相关阅读:
    1、线性DP 198. 打家劫舍
    1、线性DP 354. 俄罗斯套娃信封问题
    127. 单词接龙
    1. 线性DP 887. 鸡蛋掉落 (DP+二分)
    200. 岛屿数量
    1. 线性DP 152. 乘积最大子数组
    1. 线性DP 53. 最大子序和.
    1. 线性DP 120. 三角形最小路径和
    如何在RHEL 8上安装Python 3
    在Ubuntu 20.04 LTS Focal Fossa上安装Drupal
  • 原文地址:https://www.cnblogs.com/wujie123/p/5304582.html
Copyright © 2011-2022 走看看