首页 > 其他 > 详细

关联 objc_setAssociatedObject

时间:2015-02-05 16:22:47      阅读:334      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!