将自定义的类的对像保存在本地

-[XXXXXXX(你定义的类) encodeWithCoder:]: unrecognized selector sent to instance 0x8ec89e0'


这个问题字面意思,就是你定义的的类的encodeWithCoder:方法找不到

 

既然是出现了这个问题,那么你现在肯定是在做归档操作了嘛, 你想把XXXXXXX类归档到沙盒里面去了,嘛?

但是oc只支持NSString,NSDictionary,NSArray,NSData或者NSNumber 这几个类的对象归档.

不自定义的类的对象,要想把自己定义的类的对象归档到文件中, 

 

你自定义的类就必须:

1.遵守<NSCoding>协议

2.实现: a"- (void)encodeWithCoder:(NSCoder *)enCoder"

b"- (id)initWithCoder:(NSCoder *)decoder"

 两个方法

你想把你这个类的哪些成员变量保存就在a方法中调用enCoder对象的encodeObject: forKey:方法 

b方法是你从文件里面取出的时候规定的你可以取出哪些数据,你在a方法中保存了哪些成员变量你就要在b方法里 调用decoder对象的

initWithCoder:(NSCoder *)decoder方法

 

 

例子我自定义的类是IWAccount是我想将我这个类以后生成的对象保存到文件.h 和.m文件如下图

 
 

转载于:https://www.cnblogs.com/Hakim/p/5692531.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值