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

下列方法可以管理关联对象:

  • void objc_setAssociatedObject(id object, void*key, id value, objc_AssociationPolicy policy)

  此方法以给定的键和策略为某对象设置关联对象值。

  • id objc_getAssociatedObject(id object, void*key)

  此方法根据给定的键从某对象中获取相应的关联对象值。

  • void objc_removeAssociatedObjects(id object)

  此方法移除指定对象的全部关联对象。

 

  要点

  • 可以通过“关联对象”机制来把两个对象连起来。
  • 定义关联对象时可指定内存管理语义,用以模仿定义属性时所采用的“拥有关系”与“非拥有关系”。
  • 只有在其他做法不可行时才应选用关联对象,因为这种做法通常会引入难于查找的bug。
posted @ 2016-03-19 20:10  lanyayue  阅读(163)  评论(0)    收藏  举报