美文网首页
UIButton点击传递多个参数实现

UIButton点击传递多个参数实现

作者: 跃文 | 来源:发表于2018-06-25 17:00 被阅读9次
  • 1.通过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];

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

  • 2.获取关联的对象
- (void)click:(UIButton *)sender
{
    id first = objc_getAssociatedObject(btn, "firstObject");
    id second = objc_setAssociatedObject(btn, "secondObject");
    // etc.
}

函数说明:

objc_setAssociatedObject(btn, "firstObject", someObject, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

第一个参数:btn为被关联者(主体),第二个参数:
firstObject为指向关联的对象的指针(一般为一个static字符串),第三个参数:关联的对象实例,第四个对象:关联的方式(有几种,类似设定.h文件属性时候的 assign,retain等)

其他的控件已也是同样的道理

相关文章

网友评论

      本文标题:UIButton点击传递多个参数实现

      本文链接:https://www.haomeiwen.com/subject/mewyyftx.html