最近项目需要缓存,因为项目都是用的对象,要缓存对象必须实现NSCoding协议,但是每个Model都要实现
- (void)encodeWithCoder:(NSCoder*)aCoder
- (id)initWithCoder:(NSCoder*)aDecoder
假如对象有100个属性现实NScoding协议是一件很繁琐的事情,幸好Runtime能很好的解决这个问题。
实现的思路写一个BaseModel,在BaseModel里实现
- (void)encodeWithCoder:(NSCoder*)aCoder
- (id)initWithCoder:(NSCoder*)aDecoder
其他Model继承BaseModel即可
具体实现方法可参看在简书中看到的一篇文章查看
我写了一个demo 放在github上面有兴趣的可以下载查看