category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
2016-06-23 10:43
573 查看
属性 其实就是get/set 方法。我们可以使用 objc_setAssociatedObject/objc_getAssociatedObject 实现 动态向类中添加 方法
// 源对象,关键字,关联的对象和一个关联策略
// 关联策略表明了相关的对象是通过赋值,保留引用还是复制的方式进行关联的
// 还有这种关联是原子的还是非原子的。这里的关联策略和声明属性时的很类似。这种关联策略是通过使用预先定义好的常量来表示的。
_cmd http://blog.csdn.net/pengyuan_d/article/details/51741496
@interface NSObject (CategoryWithProperty) @property (nonatomic, strong) NSObject *property; @end @implementation NSObject (CategoryWithProperty) - (NSObject *)property { return objc_getAssociatedObject(self, _cmd); } - (void)setProperty:(NSObject *)value { objc_setAssociatedObject(self, @selector(property), value, OBJC_ASSOCIATION_RETAIN_NONATOMIC); }
// 源对象,关键字,关联的对象和一个关联策略
// 关联策略表明了相关的对象是通过赋值,保留引用还是复制的方式进行关联的
// 还有这种关联是原子的还是非原子的。这里的关联策略和声明属性时的很类似。这种关联策略是通过使用预先定义好的常量来表示的。
_cmd http://blog.csdn.net/pengyuan_d/article/details/51741496
相关文章推荐
- IOS基础:深入理解Objective-c中@class的含义
- json 字符串包含数组转换为object对象是报异常java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to
- ES6-Object
- Java学习笔记(10)Object-Oriented Thinking
- Java学习笔记(9)Objects and Classes
- [Effective JavaScript 笔记]第43条:使用Object的直接实例构造轻量级的字典
- 高仿微博
- java object to map
- Map<String, Object> 转 Json
- 【Objective-C】04-第一个OC程序解析
- 遍历系统的所有ObjectType和TypeIndex
- Avoid object allocations during draw/layout operations (preallocate and reuse instead)
- JSON详细学习之JSONObject in JAVA
- YYModel 源码解读(二)之NSObject+YYModel.h (4)
- Objective-C——基础1
- ActiveX控件安全初始化之一:实现ISafeObject接口
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- commons-pool实战之 GenericObjectPool和GenericKeyedObjectPool
- 比较两个对象的内容是否相等 重写object 的equals方法
- TDIFW ObReferenceObjectByName win7 出现0xc00000024