您的位置:首页 > 其它

通过btn传递两个实例对象

2017-04-18 10:38 78 查看
通过btn传递两个实例对象  firstObject和secondObject

UIButton *btn = // create the button
objc_setAssociatedObject(btn, "firstObject", someObject, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
objc_setAssociatedObject(btn, "secondObject", otherObject, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
[btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

- (void)click:(UIButton *)sender
{
id first = objc_getAssociatedObject(btn, "firstObject");
id second = objc_setAssociatedObject(btn, "secondObject");
// etc.
}

向以上方法那样,只要设置了关联,当把button传递给@selector的参数时,也顺便把另外两个参数也传递过去了。就类似设了button的两个属性,但是这种方法简单多了

第一步: 设定关联
objc_setAssociatedObject(btn, "firstObject", someObject, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
第一个参数:btn为被关联者(主体),第二个参数:
firstObject为指向关联的对象的指针(一般为一个static字符串),第三个参数:关联的对象实例,第四个对象:关联的方式(有几种,类似设定.h文件属性时候的 assign,retain等)[/code]
第二步:得到关联的对象
id first = objc_getAssociatedObject(btn, "firstObject");
第一个参数:为被关联者
第二个参数:为关联对象的指针。
来自:button with multiparameters
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐