回调 Objective-c 实现研究(未完成)

Objective C++实现回调函数 下面为大家介绍一下在Objective C++中怎么样去实现回调,大家都知道Object C 与 C++ 混编的时候,是不能用Cocoa 自带的委托机制来实现回调的。比如在做一些多平台的项目时,由于接口是c++编写的,这个时候你要怎么样去将接口函数里的数据传递到你Object C编写的对象中去呢。最简单的方法就是使用ios消息机制-Notification,来传递从接口中收到的数据。但如果这个时候 阅读详情

在计算机科学里, 回调(Callback)是指将一段可执行的代码以参数(面向对象程序里,也可以通过成员变量赋值的方式)的方式传递给目标代码。目标代码可以在需要的时刻(反向)调用传入的这段代码。

 

回调分为两种:

1. 同步回调(synchronous callbacks),又名阻塞回调(blocking callbacks)

 

2. 异步回调 (asynchronouscallbacks)又名非阻塞回调(non-blocking callbacks)

注意“同步异步”和 “阻塞非阻塞”并不是同一个概念,具体区别请自己搜索。

 

异步回调一般是用线程技术来实现的,主要用于一些比较耗时的操作,让这个操作在非主线程中执行,主线程中被调用函数立即返回,因此不会阻塞主线程,一般用户的UI执行在主线程,这样实现不会影响用户的操作体验。因为函数返回时,操作还在进行,所以操作结果或者数据传递就需要用回调来返回给调用者。

同步回调是指 被调用的函数也在主线程中执行,执行中会调用回调完成某些功能,或者执行完成后用回调函数返回结果。

初学者可能认为有返回值了,为什么还需要同步回调返回数据呢?

举个例子,有一个函数,可以完成不同对象的相同操作,例如对一组相同类型对象进行排序,

排序函数需要知道两个对象如何比较大小才能用通用的排序算法对这组对象进行排序, 那么就需要调用者传入一个比较大小的回调函数,这样排序函数可以完成整个排序操作。

总结下就是目标函数需要依赖回调函数才能完目标操作,就需要用到同步回调。

 

对于回调在objective-c中的实现方法,就不区分同步异步,同一种实现,可以用于同步回调,也可以用于异步回调。

然后我们来介绍回调在objective-C中的实现方法。

1.   继承自c语言中的函数指针

Objective-C 基础入门(三) 读写文件与回调 四、通过 NSString 和 NSData 读写文件 1.通过 NSString 写入文件 在将字符串对象写入文件时,要指定字符串编码。字符串编码是描述字符和代表的数字之间的映射关系。常用的编码有 ASII编码、UTF-8 和 UTF-16。 NSMutableString *str = [NSMutableString new]; for(int i=0;i<10;i++) { [str appendString:@"Aaron is cool!\n"]; } [str writ 阅读详情

相关推荐

深入理解Objective-C回调机制

本文深入探讨了Objective-C中的回调机制,包括目标-动作模式、辅助对象(代理和数据源)、通知以及代码块。通过创建一个事件驱动的程序,本文解释了程序如何启动、等待事件并作出响应,而不像传统的程序那样执行完毕即结束。文章通过具体的示例,如计时器和异步数据获取,展示了如何在程序中实现这些回调技术。

weixin_42433737的博客 515

细数Objective-C中的回调机制

http://blog.sina.com.cn/s/blog_631af5500100z4ub.html 一、协议 协议主要是提供接口、或是类似C++多重继承功能,为类提供一种修饰机制。协议不是为回调而生的,它应该表述一组互操作约定。 优点: 实现简单,容易理解。 强类型检查。 缺点: 类与类间建立了比较强的耦合关系 有可能需要较长期保存委托

cxm19881208的专栏 1099

人大金仓集群部署(主备)

4.2 上传安装包镜像和授权文件到install目录下并授权。1、复制系统脚本到/opt/kingbase目录下(主节点)4.2 修改cluster_install.sh。回车进行下一步,直到出现以下界面,回复Y键回车。三、安装kingbase客户端段(都要安装)install目录作为安装包具体存放目录。4.1 修改install.conf文件。2、复制授权文件到安装目录下(主节点)3、修改ssh参数(节点都要配置)5、安装kingbase客户端。二、基本环境配置(都要配置)6、数据库集群安装(主节点)

edutech_wang的博客 1995

Objective-C中的callback之一

OC中的Callback有四种类型:下面是第一种:NSRunloop////  BNRLogger.h//  TOCRunloopa////#import &lt;Foundation/Foundation.h&gt;@interface BNRLogger : NSObject@property (nonatomic) NSDate *lastTime;- (NSString *)lastTim...

李明的博客 1030

OGG故障指南:OGG-01163 Bad column length (xxx) specified for column

OGG-01163 Bad column length (xxx) specified for column AAA in table OWNER.TABLE, maximum allowable length is yyy

qqqyyy0422的博客 717

tkinter表格进阶:5分钟实现CSV数据可视化编辑界面(含右键菜单配置)

本文详细介绍了如何使用Python的tkintertable库快速构建CSV数据可视化编辑界面。通过导入导出CSV数据、深度定制右键菜单(如复制、插入行、删除行)以及实现单元格验证等进阶功能,开发者能在5分钟内创建一个可嵌入自动化流程的专业级桌面数据编辑工具,显著提升数据处理效率。

930

Objective-C 回调Callbacks 中目标-动作对、辅助对象、通知简单使用

回调:将一段可执行的代码和一个特定的事件绑定起来当特定的事情发生时就会执行这段代码 运行循环runloop:事件驱动的程序需要有一个对象,专门负责等待事件的发生,NSRunLoop类的实例会持续等待,当特定的事件发生时,就会向相应的对象发送消息。它会在特定的事件发生时触发回调。 int main(int argc, const char * argv[]) { @autoreleas...

Castanea的博客 470

【制作100个unity游戏之28】花半天时间用unity复刻童年4399经典小游戏《黄金矿工》(附带项目源码)

在游戏发展史上,有些游戏以其简单而耐玩的特性,深深地烙印在了玩家的记忆中。《黄金矿工》就是其中之一,它曾经在4399等游戏平台上掀起了一股游戏热潮。这款游戏不仅给无数玩家带来了欢乐,还让他们体验到了挖掘金矿的刺激与乐趣。在这个项目中,我们将花费半天的时间,利用Unity引擎,重新打造这款经典小游戏。通过复刻《黄金矿工》,我们不仅是在向童年的回忆致敬,更是在挖掘游戏设计的精髓。在这个过程中,我们将学习如何实现游戏的核心玩法,设计简洁而有效的游戏机制。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2900

Objective-c利用协议实现回调函数

定义协议: #import @protocol myViewDelegate -(void) CallBackFun; @end 调用协议: #import #import "myViewDelegate.h" @interface Test : NSObject{ id delegate; } @property(nonatomic,retain)

梦想天涯的专栏 1737

高通SDX35:SGMII接口PHY RTL8211FSI-CG驱动适配

高通SDX35 RTL8211F SGMII

不秃头的程序猿Gabriel的博客 785

开源数字人、虚拟直播部署教程

对,你无看错,是欧美的。在直播带货案例里,我们把模型导入到ue4,我们给模型在ue4里预设了四个动作(站着、站着说话、坐着、坐着说话),三个表情(平静、开发、愤怒),三个镜头(全局、近矩说话、看显示器播放商品展示)。我们只需要把目标主播的直播给录制下来,提取样本数据,然后训练一个从粉丝的不同刺激的组合,到主播的不同响应方式的多元逻辑回归的数学模型参数即可。

南七小僧的学海无涯 4559

objective-c 回调函数

回调函数可以说是很有用的东西,刚接触object-c,回调函数自然需要重点研究下: 回调函数: 类A调用类B, 类B需要调用A中的某个函数 通常有两个步骤: - 回调函数注册   类A将自己的函数作为回调函数注册到B - 函数调用,类B中达到某个条件时调用类A注册到类B的回调函数 object-c中回调函数需要使用协议:protocol来实现,如下: 步骤一 创建pro

xty_seven的专栏 3898

VisionMaster脚本调试(VS)

使用VS调试VisionMaster 脚本

yu_fujiang的专栏 3293

Objective-C 学习笔记 | 回调

Objective-C 学习笔记 | 回调

ProgramNovice的博客 3111

一文吃透 Tools for Applying SAP Notes:从 SNOTE、TCI 到 Solution Manager 与 SAP Cloud ALM

本文系统梳理了SAP技术与运维团队应用SAP Notes的高效工具与方法,涵盖On-Premise与云环境。文章首先阐述了精研SAP Notes工具的必要性,指出其是实施错误修复、法务变更和性能改进的关键载体。随后详细介绍了SNOTE、TCI、Solution Manager、Cloud ALM和Maintenance Planner等核心工具的定位与适用场景,并通过采购异常案例展示了标准更正流程。针对复杂修复场景,文章提出了TCI的批量处理方案,并强调将Note实施纳入变更治理流程的重要性。最后总结了三种

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 350

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Objective-C小白入门:什么是Objective-C

Objective-C 咳咳,今天我是你的私教美少女朵朵,开始上课。 接触一门新语言,先要了解它的历史。 Objective-C 是一种简单的计算机语言,设计为可以支持真正的面向对象编程。Objective-C 通过提供类定义,方法以及属性的语法,还有其他可以提高类的动态扩展能力的结构等,扩展了标准的 ANSI C 语言。类的语法和设计主要是基于 Smalltalk,最早的面向对象编程语言之一。 如果你以前使用过其他面向对象编程语言,那么下面的信息可以帮助你学习 Objective-C ...

程序媛乐园 5247

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

[iOS]Objective-C利用协议实现回调函数(类似java的回调函数)

http://blog.youkuaiyun.com/z251257144/article/details/7175516 [iOS]Objective-C利用协议实现回调函数(类似java的回调函数) 分类: iphone 2012-01-04 16:40 756人阅读 评论(3) 收藏 举报 javaiosinterfacewebservicestringiphone

u011248345的专栏 620

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Kotlin/Native与Objective-C互操作终极指南:Block回调与协议实现详解

Kotlin/Native作为Kotlin的LLVM后端,为开发者提供了与Objective-C进行无缝互操作的强大能力,特别是在iOS平台开发中发挥着关键作用。🎯 通过Kotlin/Native的互操作功能,开发者可以在Kotlin代码中直接调用Objective-C的Block和Protocol,实现跨语言的高效协作。 ## 🔥 为什么需要Kotlin/Native与Objective-

gitblog_00437的博客 1117

Objective-C 学习笔记 07 - 回调和协议

使用Objective-C通常有三种方式实现回调: Target-action:当某事件发生时,向指定的对象发送某个特定的消息。只做一件事时使用。 Helper objects:当某事件发生时,向遵循相应协议的辅助对象发送消息。代理和数据源是常见的辅助对象。功能较复杂是使用。 Notification:某个对象正在等待某些特定的通告,当其中的某个通告出现时,向指定的对象发送特定的消息。当某事

yaming的专栏 958

面试题:关于Objective-C中的回调机制

一、协议协议主要是提供接口,在iOS中模拟多继承,他的核心意义在——约定! 优点: 实现简单,容易理解 强类型检查 缺点: 建立了比较强的耦合关系 有可能需要较长期保存委托以进行回调。如果保留的委托需要有独占性,可能会给单件模式、以及多线程带来麻烦 类只能通过一个方法完成一种类型的回调。代码逻辑很容易集中到一个方法中。 大部分回调使用实际无需通过协议暴露给外部。 二、BlockBlock是OBJC

TEL_小超的博客 1006
上一篇: 深入理解Objective-c中@class的含义
下一篇: Objective-c Literals语法(网上翻译为字面量,我称之为@语法 at符号语法)
forceofwind
博客等级 码龄12年 2粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值