登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
设计模式之 Target/Action
设计模式之 Target/Action
[ 复制链接 ]
甦忻愉
2025-9-30 11:26:19
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
认真对待每时、每刻每一件事,把握当下、立即去做。
iOS 中的 Target-Action 设计模式是一种事件响应机制,用于在用户交互时触发特定对象的方法调用。
一. 基本概念
组成元素
:
Target
:接收消息的对象,通常是控制器(如UIViewController)。
Action
:目标对象中待调用的方法,需符合特定签名格式(如-(void)doSomething
id)sender)。
设计目的
:
通过解耦事件触发与处理逻辑,实现低耦合、高内聚的交互设计,典型应用于UIControl 子类(如 UIButton、UISlider)。
二、实现方式
代码绑定
:使用 addTarget:action:forControlEvents: 方法动态关联目标与动作,例如:
[button addTarget:self
action:@selector(handleClick:)
forControlEvents:UIControlEventTouchUpInside];
复制代码
其中 self 为 Target,handleClick: 为Action。
Interface Builder 绑定:
通过拖拽方式在 XIB 或 Storyboard 中连接控件与控制器方法,需声明 IBAction 返回值类型以暴露接口。
三、技术细节
Action 方法签名
:支持多种形式,包括:
-(void)doSomething
-(void)doSomething
id)sender
-(IBAction)doSomething
id)sender forEvent
UIEvent*)event
参数 sender 为触发事件的控件,event 包含触摸信息。
事件传递机制:
当用户操作控件时,系统调用 sendAction:to:forEvent: 方法,通过 Target 的 SEL 选择器执行对应方法。
四、扩展应用
自定义控件:
可手动实现 Target-Action 模式,例如在自定义视图中定义 target 和 action 属性,通过 performSelector: 调用目标方法。
频率控制
:结合 Runtime 的方法交换(Method Swizzling),可限制按钮点击频率,避免重复请求。
五、与其他模式对比
与 Delegate 区别
:Target-Action 为单向通信,适用于简单事件;Delegate 需定义协议,适合复杂交互。
与 Block 区别
:Block 更灵活但可能引起循环引用,Target-Action 结构更清晰。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
设计模式
Target
Action
相关帖子
没听说过设计模式?保姆级教程来了!
设计模式之单例模式
在 Zustand 中创建通用 Action
Spring用到的10种设计模式,真巧妙!
设计模式-单例模式
设计模式-工厂模式
优化 if/else 的四种设计模式
软件设计模式系列之四——简单工厂模式
解析设计模式与设计原则:构建可维护性和可扩展性代码的重要性
Go语言实现GoF设计模式:适配器模式
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
没听说过设计模式?保姆级教程来了!
3
499
涣爹卮
2025-07-09
安全
设计模式之单例模式
3
157
颖顿庐
2025-09-03
安全
在 Zustand 中创建通用 Action
3
378
翳舀
2025-09-12
业界
Spring用到的10种设计模式,真巧妙!
1
315
崔和美
2025-09-24
业界
设计模式-单例模式
6
470
颖顿庐
2025-09-25
业界
设计模式-工厂模式
2
838
毡轩
2025-09-25
业界
优化 if/else 的四种设计模式
3
715
湄圳啸
2025-09-29
安全
软件设计模式系列之四——简单工厂模式
2
1076
愆蟠唉
2025-10-10
安全
解析设计模式与设计原则:构建可维护性和可扩展性代码的重要性
3
546
涂流如
2025-10-11
安全
Go语言实现GoF设计模式:适配器模式
4
486
柩通奉
2025-11-19
回复
(7)
全阳霁
2025-10-10 14:49:49
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢,下载保存了
髡芯
2025-11-1 09:08:25
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
分享、互助 让互联网精神温暖你我
撇瞥
2025-11-14 02:57:10
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢分享
时思美
2025-11-26 03:26:45
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢分享,学习下。
梅克
2025-12-1 03:27:03
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
懂技术并乐意极积无私分享的人越来越少。珍惜
章绮云
2025-12-5 04:11:47
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
很好很强大 我过来先占个楼 待编辑
舒娅友
前天 12:33
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个有用。
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
代码
签约作者
程序园优秀签约作者
发帖
甦忻愉
前天 12:33
关注
0
粉丝关注
12
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845357
3934307807
991123
4
xiangqian
638210
5
韶又彤
9998
6
宋子
9983
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9951
查看更多
今日好文热榜
311
《ESP32-S3使用指南—IDF版 V1.6》第五十五
941
纯前端调用大模型真的安全吗?我踩过的坑比
895
【分析式AI】-带你秒弄懂决策树与随机森林
97
DBLens 的数据安全、登录方式与离线使用说
71
国内开发者合规订阅 Claude Code 的 3 条最
153
Perforce QAC 2025.3 新版上线 | 速度与深
475
防止跨站脚本攻击(XSS)(完整版HTTP安全
352
Wayland下RDP服务器的搭建
887
Flink学习笔记:状态后端
532
csq-蓝桥杯python-基础语法2-列表与循环语
512
C#+VisionMaster 学习笔记(目录)-目录
586
ROS2核心概念之参数
88
【Agent】MemOS 源码笔记---(5)---记忆分类
129
.NET周刊【11月第4期 2025-11-23】
191
Oracle回滚与撤销(Undo)技术:从理论到实
223
吴恩达深度学习课程四:计算机视觉 第二周
854
jetson nano的ssh远程登录连接
638
Categraf 监控采集器常见问题汇总
825
11月和12月求职总结
950
2026年成都品牌主,如何选择AI优化搜索(AI