前面有一篇文章介绍了利用运行时在字典转模型,以及对自定义类归档解档中的使用方法,再补充一个利用运行时给分类增加属性的方法.
我们知道分类的主要作用是在不改变原来类的情况下,给其增加方法,但是却不能增加属性. 但是利用运行时,我们可以给分类增加属性.核心代码如下:
#import "UIImageView+webCache.h"
#import <objc/runtime.h>
const char * KEY = "key";
@implementation UIImageView (webCache)
//分类中不能synthesize
//@synthesize currentIMGAddr = _currentIMGAddr;
-(NSString *)currentIMGAddr{
/*
1.要被关联的对象
2.关联的key
*/
return objc_getAssociatedObject(self, KEY);
}
-(void)setCurrentIMGAddr:(NSString *)currentIMGAddr{
//关联对象
/*
1.要被关联的对象
2.关联的key
3.关联的值
4.关联策略-属性关键字
*/
objc_setAssociatedObject(self, KEY, currentIMGAddr, OBJC_ASSOCIATION_COPY_NONATOMIC);
}