利用Runtime实现NScoding

最近项目需要缓存,因为项目都是用的对象,要缓存对象必须实现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上面有兴趣的可以下载查看

你可能感兴趣的:(利用Runtime实现NScoding)