美文网首页
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