首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏青玉伏案

    Target-Action回调模式

            前面的博客中提到过回调的概念,是在OC通过协议来实现的回调,和Java中的接口的回调极为相似,下面来介绍另一种方法回调模式: Target-Action回调。 首先我们来从字面意思来理解一下Target-Action回调模式,Target目标即我们要调用哪个目标对象中的方法。Action是行为的意思,就是我们要调用目标对象中的哪一个方法。 委托回调模式之前在Java中接触过,而Target-Action回调模式笔者是第一次接触,可能是笔者道行太浅,感觉这是OC中对回调的新用法,感觉还行,不难理解。          为了体现出Target-Action回调模式,我们需要在组件中通过Target-Action回调模式来回调Controler中每个组件所对应的方法。 303] 我是Controler中的componenTwoFunction方法,我的参数*组件二中返回的参数*是从组件二中回调时获取的 ​    ​    ​     ​上面所有的代码是笔者根据个人理解Target-Action

    1.1K90发布于 2018-01-11
  • 来自专栏iOS逆向与安全

    iOS小技能: Target-Action设计模式的运用

    前言 Target-Action指当某个事件发生的时候,调用特定对象的特定方法。 例子:当用户操纵控件对象(按钮/滑块)时,它会将消息发送到指定的对象。 存储的信息由两个数据项组成:动作选择器(用于标识要调用的方法)和目标(用于接收消息的对象) Target-Action模式主要包含两个部分: Target(对象):接收消息的对象,通常是自定义控制器。 article/details/108018307 方案二:【实现AppClick事件的全埋点】(Method Swizzling交换UIView的-didMoveToSuperview方法给控件添加Target-Action 并采集相关属性) https://blog.csdn.net/z929118967/article/details/108019408 方案一和方案二其实都运用了iOS中的Target-Action模式 对于方案一:如果给一个控件添加了多个Target-Action,会导致多次触发Click事件。

    1K20编辑于 2022-08-22
  • 来自专栏iOS逆向与安全

    iOS Target-Action设计模式的运用之【限制按钮的点击频率】

    在项目开发中,会对数据库数据进行更新操作的接口请求,不仅服务器侧需要控制请求频率以及保证数据的唯一性和一致性,app侧也需要进行限制来避免测试垃圾数据

    56220发布于 2021-07-05
  • 来自专栏iOS逆向与安全

    iOS小技能: 限制按钮的点击频率(Target-Action设计模式的运用)

    https://kunnan.blog.csdn.net/article/details/74107917 iOS Target-Action设计模式的运用 https://kunnan.blog.csdn.net

    1.2K20编辑于 2022-08-22
  • 来自专栏Helloted

    模块解耦的三种方案

    不能直接声明成员变量,但是利用setter和getter方法可以达到相同效果) 只要某个类遵守了这个协议,就相当于拥有这个协议中的所有方法声明 只要父类遵守了某个协议,就相当于子类也遵守了 原理: 3、Target-Action Target-Action优点 充分的利用Runtime的特性,无需注册。 每个category对应一个Target,Category中的方法对应Action场景。 Target-Action方案也统一了所有组件间调用入口 Target-Action缺点 Runtime编译的时候无法报错,容易造成没有Selector的crash; 每个Target去写一个Category

    1.6K20编辑于 2022-06-08
  • 来自专栏学海无涯

    iOS18适配指南之UIUpdateLink

    updateLink = UIUpdateLink(view: imageView) // 添加Action,可以添加多个Action // 既可以使用Target-Action // MARK: UI更新时调用 @objc func update(link: UIUpdateLink, info: UIUpdateInfo) { print("Target-Action

    22610编辑于 2025-02-10
  • 来自专栏進无尽的文章

    iOS组件化设计与开发

    1. target-action做的事情都是跨业务调度的事情,它不是简单地把方法换个位置。你先理解什么事跨业务调度。 2. category的目的是在调度的时候,调度的人不用去考虑应该具体调哪个target-action,以及参数都有哪些,类型都是什么。 category通过函数参数的方式收集参数并生成调用target-action时的param字典。 总结起来就是: 1.各组件可以只专注于自身的业务设计,最后通过无侵入的 target-action 方式为外界提供接口调用,这个 target-action 设计的很精妙。 2.组件间通过中间件通信,中间件通过 runtime 和 组件的 target-action 解耦合。不依赖于任何组件。 3.

    1.6K50发布于 2018-12-07
  • 来自专栏学海无涯

    iOS18适配指南之UIUpdateLink

    移除时自动失效 updateLink = UIUpdateLink(view: imageView) // 添加Action,可以添加多个Action // 既可以使用Target-Action } // MARK: UI更新时调用 @objc func update(link: UIUpdateLink, info: UIUpdateInfo) { print("Target-Action

    52910编辑于 2024-09-09
  • 来自专栏博文视点Broadview

    Swift 2开发必备小Tip

    但是target-action 又是Cocoa 中如此重要的一种设计模式,无论如何我们都想安全地使用,应该怎么办呢?一种可能的解决方式就是利用方法的柯里化。 Ole Begemann 在这篇帖子2里提到了一种很好的封装,这为我们如何借助柯里化,安全地改造和利用target-action 提供了不少思路。

    49930发布于 2020-06-11
  • 来自专栏iOS面试技术问题

    iOS-组件化(OC篇)

    基于反射的远程接口调用封装(target-action)。 基于面向协议思想的服务注册方案(protocol-class)。 基于通知的广播方案(NSNotification)。 可以使用一种或几种,我这里选用了基于反射的远程接口调用封装(target-action)和基于路由 URL 的 UI 页面统跳管理(url-block)来进行封装。

    1.6K51发布于 2020-10-09
  • 来自专栏青玉伏案

    IOS开发之简单音频播放器

            今天第一次接触IOS开发的UI部分,之前学OC的时候一直在模拟的使用Target-Action回调模式,今天算是真正的用了一次。 在用到UI的控件时如果很好的理解之前博客在OC中的Target-Action回调模式,感觉控件的用法会很顺手。下面的简易播放器没有用到多高深的技术,只是一些基本控件和View的使用。          配置的时候我们可以通过tintColor来设置我们segment的颜色,通过Target-Action来注册segment要回调的方法,同时指定回调的事件,我们设置的时UIControlEventValueChange

    2.2K60发布于 2018-01-11
  • 来自专栏呱牛笔记

    重回iOS应用开发

    instantiateInitialViewController]; [self.navigationController pushViewController:vc animated:NO]; 2、非直接跳转,组件隔离方案目前有三种:  - Target-Action 方案,Target-Action方案代表就是`CTMediator` - URL Router 方案,URL Router 方案代表是蘑菇街的`MGJRouter` - Protocol-Class

    78020编辑于 2023-05-02
  • 来自专栏Antony iOS Development

    iOS中的「回调(callback)」

    Objective-C中有4种途径可以实现回调: 1、Target-action/目标-动作对 先看代码: // 为按钮添加回调——Target-action/目标-动作对 // 第一个参数:发送消息给谁 再看一个NSTimer对象的代码: // 一个自定义类对象 Logger *logger = [[Logger alloc] init]; // 为NSTimer对象添加回调——Target-action 所以,Target-action/目标-动作对,就是「当事件发生时,向指定的对象发送某个特定的消息」。 以上是书中的描述,但谁是target,谁又是action,搞得含糊不清。 总结书上的建议: 当只发生单个事件(event),只需要完成一件事情进行响应,建议用「Target-action/目标-动作对」。比如NSTimer、UIButton等。

    4.4K30发布于 2019-02-14
  • 来自专栏学海无涯

    iOS14开发-触摸与手势识别

    继承自 UIControl 的 UIView 都可以通过 Target-Action 方式添加事件,如果同时给它们添加手势识别, 则 Target-Action 的行为会失效,因为手势识别的优先级更高。

    3.3K20发布于 2021-05-10
  • 来自专栏陈满iOS

    iOS面试系列·某安金融科技公司iOS开发面试回忆

    然后,为了让View和ViewModel之间能够有比较松散的绑定关系,于是我们使用ReactiveCocoa,KVO,Notification,block,delegate和target-action都可以用来做数据通信

    67620发布于 2020-06-02
  • 来自专栏吴老师移动开发

    【iOS开发】Responder Chain做事件传递

    事件传递的几种方式: Target-Action Delegate Notification Block 像商品详情这种有各种各样的cell,cell里面又有各种不同的按钮事件等。

    75441发布于 2018-09-05
  • 来自专栏程序员维他命

    点亮你 App 的 5 个 iOS 库

    sender.selectedSegmentIndex + 1) * 2 } func targetActionValueChange(page:TKRubberIndicator){ print("Target-Action

    1.1K20发布于 2019-12-11
  • 来自专栏APP自动化测试

    函数响应式编程及ReactiveObjC学习笔记 (二)

    unified approach to dealing with asynchronous behaviors, including delegate methods, callback blocks, target-action 这里其实RAC还为我们提供了除了subscriber以外的操作, 后面再介绍给, 现在我们主要先来看RAC是怎么替我们做KVO的 我们再看看RAC如何帮我们实现target-action 我们创建一个项目

    68611发布于 2019-10-15
  • 来自专栏写写代码

    基于Combine的响应式UIControl

    一、概述 iOS开发中UIKit中控件的交互方式默认是Target-Action,这种方式简单且直观。

    1.7K30编辑于 2023-04-21
  • 来自专栏iOS122-移动混合开发研究院

    BlocksKit初见:一个支持将delegate转换成block的Cocoa库

    if (state == UIGestureRecognizerStateRecognized) { ... } }]; UIButton 和 UIGesture 将 target-action

    1.6K100发布于 2018-01-02
领券