使用runtime让button传递多个参数
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传递多个参数相关推荐
- 在学习thymeleaf中,给function 方法传Controller传递过来的参数,报错:Uncaught SyntaxError: missing ) after argument list
在学习thymeleaf中,给function 方法传Controller传递过来的参数. 报错:Uncaught SyntaxError: missing ) after argument list ...
- Ajax学习日志(三)—— 如何传递get请求参数
Ajax入门(三) 一.如何传递get请求参数 1.1) 在app.js创建新路由 1.2) 在public文件夹新建一个html文件 1.3)运行 一.如何传递get请求参数 1.1) 在app.j ...
- WebAPI Post模式下传递、接收参数的几种方法
创建实体类 前一篇博客讲了Get模式下的传递.接收参数的几种方法,现在来介绍一下Post模式下传递.接收参数的几种方法.首先还是老样子,创建一个空的ASP.NET WebAPI工程,在Models文件 ...
- Mybatis传递多个参数的4种方式
现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate.使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数.面对各种复杂的业务场景,传递参数也是一种学问. ...
- 转载 C#中使用结构来传递多个参数
C#中当参数超过5个时,建议用结构来传递多个参数. 示例代码如下: 1 public struct MyStruct 2 { 3 public string str; 4 public int num ...
- Shell:传递命令行参数
shell脚本文件(t.sh)内容: #!/bin/bash echo "脚本文件名:$0" echo "参数1:$1" echo "参数2:$2&q ...
- 关于向Mybatis传递多个参数进行SQL查询的用法
当只向xxxMapper.xml文件中传递一个参数时,可以简单的用"_parameter"来接收xxxMapper.java传递进来的参数,并代入查询,比如说这样: (1)xxxM ...
- mybatis常见问题处理:批量操作,传递多个参数,like语句写法等等
1.当实体类中的属性名和表中的字段名不一样 解决办法①: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致 <select id="selectorde ...
- mybatis传递多个参数_Mybatis传递多个参数的4种方式(干货)
现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate.使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数.面对各种复杂的业务场景,传递参数也是一种学问. ...
最新文章
- python 混合整数规划_matlab求解混合整数规划的困惑
- 不使用vue-cli来创建项目
- LeetCode Find K Pairs with Smallest Sums(大根堆、小根堆)
- php入门05-会话控制(session与cookie)
- docker info 显示 Docker 系统信息
- 【notebook】常用在线notebook总结
- 【手撸一个ORM】第八步、查询工具类
- sql基础知识第二部分
- HDU 5570:balls 期望。。。。。。。。。。。。。。。
- 在布局空间标注的尺寸量不对_装修公司为什么要量房?量房到底在量什么?又该注意什么?...
- python实现可视化数独求解器(附代码链接及点点讲解)
- java 字符串去重排序
- ISO20000对高校构建IT服务管理体系的应用价值和实践意义
- 列表、元组、字典、集合的基本使用和相关函数,基础的文件操作
- LDA 与 KNN 算法
- 文因互联 CEO 鲍捷:确保搞砸人工智能项目的十种方法
- 四、软件体系结构描述
- Excel按数字大小排序
- 进一步了解XPath(利用XPath爬取飞哥的博客)【python爬虫入门进阶】(04)
- 百度排名批量查询_一篇讲透百度霸屏引流细节思路与操作玩法
热门文章
- 时空特征--Learning Spatiotemporal Features with 3D Convolutional Networks
- execSQL()方法和rawQuery()方法
- 给VMware虚拟机增加硬盘容量:Linux/Windows系统
- mini mysql_mini
- 用虚拟机学linux,虚拟机上学习Linux运维?学linux有什么用
- 好奇怪呀后面加什么标点_加标点
- dev schedulercontrol 不显示周_CBA更新伤病报告:丁彦雨航仍需5周 阿联还要休养半年...
- git flow版本
- maven只打包java目录_ssm项目中maven对resources目录打包的路径_默认路径,自定义路径...
- oracle字符串提取函数,oracle字符串分割和提取函数定义