objc_setAssociatedObject 、objc_getAssociatedObject

关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。
使用关联,我们可以不用修改类的定义而为其对象增加存储空间 (category)添加属性
关联是基于关键字的,因此,我们可以为任何对象增加任意多的关联,每个都使用不同的关键字即可。关联是可以保证被关联的对象在关联对象的整个生命周期都是可用的

//获取关联对象
//源对象 关键字

  • (NSIndexPath *)currentIndexPath {
    NSIndexPath *indexPath = objc_getAssociatedObject(self, @"22");
    return indexPath;
    }
    //动态关联
    //源对象,关键字,关联的对象和一个关联策略
  • (void)setCurrentIndexPath:(NSIndexPath *)currentIndexPath {
    objc_setAssociatedObject(self, @"22", currentIndexPath, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容