程序运行时动态的为某个类添加属性
// MARK: -运行时的关联对象,动态添加属性--->给cell中的iconView添加了一个属性作为当前要显示图片的地址标记,在下一次更新图片时验证与重用的cell的上一次图片链接是否相同,若不相同取消下载管理器中的上一次的下载操作
// 手动实现 set/get 方法添加
- (void)setUrlString:(NSString *)urlString {
// id object : 告诉运行时,为哪一个类添加属性
// const void *key : 与动态添加的属性是对应关系,标记这一个属性
// urlString : 增加属性的内容
// OBJC_ASSOCIATION_COPY_NONATOMIC : 属性的修饰词
objc_setAssociatedObject(self, urlStringKey, urlString, OBJC_ASSOCIATION_COPY_NONATOMIC);
}
- (NSString *)urlString {
return objc_getAssociatedObject(self, urlStringKey);
}