objective-C 自定义对象归档的实现

自定义对象要实现归档必须实现NSCoding协议

NSCoding协议有两个方法,encodeWithCoder方法对对象的属性数据做编码处理,initWithCoder解码归档数据来初始化对象。

import

import “user.h”

define AGE @”age”

define NAME @”name”

define EMAIL @”email”

define PASSWORD @”password”

@implementation user

//对属性编码

  • (void)encodeWithCoder:(NSCoder *)aCoder

{

[aCoder encodeInt:_ageforKey:@"age"];

[aCoder encodeObject:_nameforKey:AGE];

[aCoder encodeObject:_emailforKey:EMAIL];

[aCoder encodeObject:_pwdforKey:PASSWORD];

}

//对属性解码

  • (id)initWithCoder:(NSCoder *)aDecoder

{

self=[super init];

if(self)

{

    self.age=[aDecoderdecodeIntForKey:AGE];

    self.name=[aDecoderdecodeObjectForKey:NAME];

    self.email=[aDecoderdecodeObjectForKey:EMAIL];

    self.pwd=[aDecoderdecodeObjectForKey:PASSWORD];

}

return self;

}

-(void)dealloc

{

[_name release];

[_email release];

[_pwd release];

[super dealloc];

}

@end

main函数的调用

user *userObj=[[user alloc] init];
    userObj.age=33;
    userObj.email=@"adfdadf@qq.com";
    userObj.pwd=@"212212";
    userObj.name=@"ricard";

    NSString *path=[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/custom.text"];
    BOOL succ=[NSKeyedArchiver archiveRootObject:userObj toFile:path];
    if (succ) {
                NSLog(@"Hello, World!");
        user *usertemp=[NSKeyedUnarchiver unarchiveObjectWithFile:path];

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值