码迷,mamicode.com
首页 > 其他好文 > 详细

关联 objc_setAssociatedObject

时间:2015-02-05 16:23:34      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

关联: 是把两个对象相互关联起来,其中的一个对象作为另一个的对象的一部分,Mac OS X V10.6以后才能使用
使用关联,我我们可以不用修改类的定义而未其对象增加储存空间。关联是基于关键字的,因此可以为任何对象增加任意多多关联,每个都使用不同多关键字即可。
创建要使用到OC的运行时函数:objc_setAssociatedObject,该函数需要四个参数:原对象;

关键字;关联的对象和一个关联策略(关联策略表明了相关的对象是通过赋值,保留引用还是复制的方式进行关联;这种关联是原子的还是非原子的);

关键字是一个void类型的指针,必须唯一,一般都会采用静态变量

//demo 把一个字符串关联到一个数组
//static char overviewKey;
    NSArray *array = [[NSArray alloc] initWithObjects:@"test",nil];
    NSString *overview = [NSString stringWithFormat:@"%@",@"test number"];
    objc_setAssociatedObject(array, @"overviewKey", overview, OBJC_ASSOCIATION_RETAIN);
    NSString *associatedObject = objc_getAssociatedObject(array,@"overviewKey");


关联 objc_setAssociatedObject

标签:

原文地址:http://blog.csdn.net/u012976984/article/details/43529113

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!