引入头文件
#import <objc/runtime>
要关联的对象的键值,一般设置成静态的,用于获取关联对象的值
static char UIButtonKey;
//创建两个需要关联的对象
UIButton * button = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 20, 20)];
button.center = self.view.center;
button.backgroundColor = [UIColor redColor];
[self.view addSubview:button];
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 20, 20)];
label.backgroundColor = [UIColor yellowColor];
label.text =@"获取";
//给对象确立关联(让label关联到button上)
objc_setAssociatedObject(button, &UIButtonKey, label, OBJC_ASSOCIATION_RETAIN);
//根据键值获取到关联对象
UILabel * lab = objc_getAssociatedObject(button, &UIButtonKey);
NSLog(@"lab.text = %@",lab.text);
//断开关联
objc_setAssociatedObject(button, &UIButtonKey, nil, OBJC_ASSOCIATION_ASSIGN);
UILabel * lab1 = objc_getAssociatedObject(button, &UIButtonKey);
NSLog(@"断开关联之后的lab1.text = %@",lab.text);
objc_setAssociatedObject
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 关联 关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。 关联特性只有在Mac OS X...
- 一、_cmd _cmd表示当前方法的selector的一个指针,self表示指向当前对象的一个指针 例如: 比如,...
- 1.@selector原理介绍 SEL 类成员方法的指针 可以理解 @selector()就是取类方法的编号,他的...
- 一.AssociatedObject 1.大家在iOS的学习和实战过程中往往会遇到一些相对来说深奥一点的语法.而今...