重要函数为:
//为给定的对象设置一个关联值public func objc_setAssociatedObject(_ object: Any, _ key: UnsafeRawPointer, _ value: Any?, _ policy: objc_AssociationPolicy)//返回与给定键的给定对象关联的值public func objc_getAssociatedObject(_ object: Any, _ key: UnsafeRawPointer) -> Any?//移除给定对象的全部关联public func objc_removeAssociatedObjects(_ object: Any)objc_setAssociatedObject 相称于 setValue:forKey 举行关联value对象
objc_getAssociatedObject 用来读取对象
objc_AssociationPolicy 属性 是设定该value在object内的属性,即 assgin, (retain,nonatomic)...等
相关参数先容:
key:要包管全局唯一,key与关联的对象是逐一对应关系。必须全局唯一。
value:要关联的对象。
policy:关联战略。有五种关联战略。
OBJC_ASSOCIATION_ASSIGN 等价于 @property(assign)。
OBJC_ASSOCIATION_RETAIN_NONATOMIC等价于 @property(strong, nonatomic)。
OBJC_ASSOCIATION_COPY_NONATOMIC等价于@property(copy, nonatomic)。
OBJC_ASSOCIATION_RETAIN等价于@property(strong,atomic)。
OBJC_ASSOCIATION_COPY等价于@property(copy, atomic)。 |