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

-[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文件如下图

 
 
posted @ 2016-07-21 17:22  Hakim_Fan  阅读(225)  评论(0编辑  收藏  举报