iOS归档

本文介绍了一个使用Objective-C实现的数据模型归档与解档的具体案例,包括定义模型类、实现NSCoding协议的方法及具体的归档解档过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我先建了个模型,准备存放数据

#import <Foundation/Foundation.h>


@interface Model : NSObject<NSCoding>


@property (nonatomic,copy)NSString *name;


@property (nonatomic,copy)NSString *age;


+(instancetype)jcWithDict:(NSString *)name andAge:(NSString *)age;


@end


//这是.m文件

#import "Model.h"


@implementation Model



+(instancetype)jcWithDict:(NSString *)name andAge:(NSString *)age

{

    Model *model = [[self alloc]init];

    model.name = name;

    model.age = age;

    return model;

}


-(void)encodeWithCoder:(NSCoder *)aCoder

{


    [aCoder encodeObject:_name forKey:@"name"];

    [aCoder encodeObject:_age forKey:@"age"];

    

}


-(instancetype)initWithCoder:(NSCoder *)aDecoder

{

    if (self = [super init]) {

  

        _name = [aDecoder decodeObjectForKey:@"name"];

        _age = [aDecoder decodeObjectForKey:@"age"];

        

    }

    return self;

  }


@end




//这是我具体的归档方法  

NSString *strf = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];

    NSString *rpd = [strf stringByAppendingPathComponent:@"zhujiacheng.plist"];

//    [array writeToFile:rpd atomically:YES];

    

    

    Model *mod = [[Model alloc]init];

    mod.name = @"得得得";

    [NSKeyedArchiver archiveRootObject:mod toFile:rpd];

    

    NSLog(@"%@",rpd);



 

//这是进行解压  

NSString *jc1 = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask,YES)[0];

        NSString *jc2 = [jc1 stringByAppendingPathComponent:@"zhujiacheng.plist"];

        

        NSArray *array = [NSArray arrayWithContentsOfFile:jc2];

//        NSLog(@"%@",array);

        

        

        Model *mode = [NSKeyedUnarchiver unarchiveObjectWithFile:jc2];

        NSLog(@"mode = %@",mode.name);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值