-[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文件如下图
时间: 2024-09-08 12:19:20