美文网首页
第10条: 在既有类中使用关联对象存放自定义数据

第10条: 在既有类中使用关联对象存放自定义数据

作者: spbreak | 来源:发表于2016-02-19 10:01 被阅读17次

表- 对象关联类型

void objc_setAssociatedObject(id object, void *key, id value, objc_AssociationPolicypolicy)
此方法以给定的键和策略为某对象设置关联对象值
id objc_getAssociatedObject(id object, void *key)
此方法根据给定的键从某对象中获取相应的关联对象值
void objc_removeAssociatedObjects(id object)
此方法移除指定对象的全部关联对象

设置关联对象时用的键(key) 是个"不透明的指针"(opaque pointer).
若想令两个键匹配到同一个值, 则二者必须是完全相同的指针才行.
鉴于此, 在设置关联对象值时, 通常使用静态全局变量做键

要点:
只有在其他做法不可行时才应选用关联对象, 因为这种做法通常会引入难于查找的bug

相关文章

网友评论

      本文标题:第10条: 在既有类中使用关联对象存放自定义数据

      本文链接:https://www.haomeiwen.com/subject/dyrzhttx.html