2019独角兽企业重金招聘Python工程师标准>>>

让button同时传递2个参数

我们需要通过runtime来实现这个功能,废话不多说,直接开始~~~

  • 首先,使用runtime我们需要导入一个头文件 #import <objc/runtime.h>
  • 然后让我们创建一个button
    _btn = [UIButton buttonWithType:UIButtonTypeSystem];_btn.frame = CGRectMake(10, 10, 100, 50);[_btn setTitle:@"点击" forState:UIControlStateNormal];[_btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:_btn];
  • 使用runtime,给btn附带2个参数
    NSString *str1 = @"第一个参数";NSString *str2 = @"第二个参数";objc_setAssociatedObject(_btn, "first", str1, OBJC_ASSOCIATION_COPY_NONATOMIC);objc_setAssociatedObject(_btn, "second", str2, OBJC_ASSOCIATION_COPY_NONATOMIC);
// objc_setAssociatedObject方法有4个参数:第一个是被关联的对象,第二个参数是指向关联对象的指针,
//第三个参数是关联对象的实例,第四个参数是关联方式(跟声明属性的时候类似,有assign,retain,copy等类型)
  • 这样,我们在按钮被点击的时候,我们就可以将2个参数传递到 btnClick:里,然后我们获取到这2个参数就可以了
 - (void)btnClick:(UIButton *)sender {id first = objc_getAssociatedObject(_btn, "first");id second = objc_getAssociatedObject(_btn, "second");NSLog(@"%@=====%@", first, second);//第一个参数=====第二个参数
}

转载于:https://my.oschina.net/ozawa4865/blog/714238

使用runtime让button传递多个参数相关推荐

  1. 在学习thymeleaf中,给function 方法传Controller传递过来的参数,报错:Uncaught SyntaxError: missing ) after argument list

    在学习thymeleaf中,给function 方法传Controller传递过来的参数. 报错:Uncaught SyntaxError: missing ) after argument list ...

  2. Ajax学习日志(三)—— 如何传递get请求参数

    Ajax入门(三) 一.如何传递get请求参数 1.1) 在app.js创建新路由 1.2) 在public文件夹新建一个html文件 1.3)运行 一.如何传递get请求参数 1.1) 在app.j ...

  3. WebAPI Post模式下传递、接收参数的几种方法

    创建实体类 前一篇博客讲了Get模式下的传递.接收参数的几种方法,现在来介绍一下Post模式下传递.接收参数的几种方法.首先还是老样子,创建一个空的ASP.NET WebAPI工程,在Models文件 ...

  4. Mybatis传递多个参数的4种方式

    现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate.使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数.面对各种复杂的业务场景,传递参数也是一种学问. ...

  5. 转载 C#中使用结构来传递多个参数

    C#中当参数超过5个时,建议用结构来传递多个参数. 示例代码如下: 1 public struct MyStruct 2 { 3 public string str; 4 public int num ...

  6. Shell:传递命令行参数

    shell脚本文件(t.sh)内容: #!/bin/bash echo "脚本文件名:$0" echo "参数1:$1" echo "参数2:$2&q ...

  7. 关于向Mybatis传递多个参数进行SQL查询的用法

    当只向xxxMapper.xml文件中传递一个参数时,可以简单的用"_parameter"来接收xxxMapper.java传递进来的参数,并代入查询,比如说这样: (1)xxxM ...

  8. mybatis常见问题处理:批量操作,传递多个参数,like语句写法等等

    1.当实体类中的属性名和表中的字段名不一样 解决办法①:  通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致  <select id="selectorde ...

  9. mybatis传递多个参数_Mybatis传递多个参数的4种方式(干货)

    现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate.使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数.面对各种复杂的业务场景,传递参数也是一种学问. ...

最新文章

  1. python 混合整数规划_matlab求解混合整数规划的困惑
  2. 不使用vue-cli来创建项目
  3. LeetCode Find K Pairs with Smallest Sums(大根堆、小根堆)
  4. php入门05-会话控制(session与cookie)
  5. docker info 显示 Docker 系统信息
  6. 【notebook】常用在线notebook总结
  7. 【手撸一个ORM】第八步、查询工具类
  8. sql基础知识第二部分
  9. HDU 5570:balls 期望。。。。。。。。。。。。。。。
  10. 在布局空间标注的尺寸量不对_装修公司为什么要量房?量房到底在量什么?又该注意什么?...
  11. python实现可视化数独求解器(附代码链接及点点讲解)
  12. java 字符串去重排序
  13. ISO20000对高校构建IT服务管理体系的应用价值和实践意义
  14. 列表、元组、字典、集合的基本使用和相关函数,基础的文件操作
  15. LDA 与 KNN 算法
  16. 文因互联 CEO 鲍捷:确保搞砸人工智能项目的十种方法
  17. 四、软件体系结构描述
  18. Excel按数字大小排序
  19. 进一步了解XPath(利用XPath爬取飞哥的博客)【python爬虫入门进阶】(04)
  20. 百度排名批量查询_一篇讲透百度霸屏引流细节思路与操作玩法

热门文章

  1. 时空特征--Learning Spatiotemporal Features with 3D Convolutional Networks
  2. execSQL()方法和rawQuery()方法
  3. 给VMware虚拟机增加硬盘容量:Linux/Windows系统
  4. mini mysql_mini
  5. 用虚拟机学linux,虚拟机上学习Linux运维?学linux有什么用
  6. 好奇怪呀后面加什么标点_加标点
  7. dev schedulercontrol 不显示周_CBA更新伤病报告:丁彦雨航仍需5周 阿联还要休养半年...
  8. git flow版本
  9. maven只打包java目录_ssm项目中maven对resources目录打包的路径_默认路径,自定义路径...
  10. oracle字符串提取函数,oracle字符串分割和提取函数定义