关联

作者: GShining | 来源:发表于2016-06-03 17:03 被阅读0次

参考:http://blog.csdn.net/onlyou930/article/details/9299169

关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。

关联特性只有在Mac OS X V10.6以及以后的版本上才是可用的。

在类的定义之外为类增加额外的存储空间

使用关联,我们可以不用修改类的定义而为其对象增加存储空间。这在我们无法访问到类的源码的时候或者是考虑到二进制兼容性的时候是非常有用。

关联是基于关键字的,因此,我们可以为任何对象增加任意多的关联,每个都使用不同的关键字即可。关联是可以保证被关联的对象在关联对象的整个生命周期都是可用的(在垃圾自动回收环境下也不会导致资源不可回收)。

创建关联

创建关联要使用到Objective-C的运行时函数:objc_setAssociatedObject来把一个对象与另外一个对象进行关联。该函数需要四个参数:源对象,关键字,关联的对象和一个关联策略。当然,此处的关键字和关联策略是需要进一步讨论的。

■  关键字是一个void类型的指针。每一个关联的关键字必须是唯一的。通常都是会采用静态变量来作为关键字。

■  关联策略表明了相关的对象是通过赋值,保留引用还是复制的方式进行关联的;还有这种关联是原子的还是非原子的。这里的关联策略和声明属性时的很类似。这种关联策略是通过使用预先定义好的常量来表示的。

相关文章

  • 关联 不关联

    烟雨朦胧里 横生而发的一缕思绪 是否停驻在朦胧斑驳的一处 询问 那一日 这一日的光景 你可曾望见 世俗里 有顽固的...

  • Runtime 关联对象, 可在分类中添加属性

    Runtime 关联对象, 可在分类中添加属性 关联 API 如下 设置关联值 获取关联值 取消关联 关联策略

  • iOS~关联类型、关联值、关联对象

    1、Associated Type (关联类型) Practical Protocols with Associa...

  • 关联的关联472

    刚刚读到一个观点,关联是进步的天梯。于是我忍不住也想通过这个观点再向外关联思考。关联,如果是自己所理解的那样的话,...

  • 设计模式中常见的关系举例

    设计模式就是面向对象的一种数据结构 关联关系 关联可以是双向关联、单向关联,其中单向关联还可以包含一种特殊的关联就...

  • SQL Server 2016 表操作:多表关联查询

    INNER JOIN 交叉关联 LEFT JOIN 左关联 RIGHT JOIN 右关联

  • 关联

    有的人 走着走着就丢了 有的人无论多远 都丢不了 就像在大海游泳 身边的水 总是连着远处的水 如同河流,流过你和我...

  • 关联

    一个是伫立在塞纳河畔的巴黎铁塔, 一个是横跨海河的万国桥(解放桥), 两者相隔万水千山, 它们之间...

  • 关联

    沙漠,风,沙波涟漪 岁月,时光,额上皱纹

  • 关联

    几个学习的链接地址 ibm_umlcsdn_blog 关联是什么

网友评论

      本文标题:关联

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