当前位置: 首页 > news >正文

Swift闭包使用详情

闭包和OC黄总的block非常相似

  1. OC中的block是匿名的函数
  2. Swift中的闭包是一个特殊的函数
  3. block和闭包都经常用于回调

一.OC中block用法

定义网络请求的类

@interface HttpTool : NSobject-(void)loadRequest:(void(^)())callBackBlock;@end@implementation HttpTool-(void)loadRequest:(void(^)())callBackBlock
{dispatch async(dispatch_get_global_queue(0,0),^{NSLOg(@"加载网络数据:%",[NSThread currentThread]);dispatch _async(dispatch_get main_queue(),^{callBackBlock();));});}
@end

进行网络请求,请求到数据利用block进行回调

-(void)touchesBegan:(NSSet<UITouch*>*)touches withEvent:(UIEvent *)event{[self.httpTool loadRequest:^{NSLOg(@"主线程中,将数据回调.%”,[NSThread currentThread]);}];
}

二.Swift中闭包用法

 //闭包的类型:(参数列表)->(返回值类型)func loadData(callBack : (_ jsonData : String)->()){dispatch_async(dispatch_get_global_queue(0,0)) { () -> Void inprint("发送网络请求")dispatch_async(dispatch_get_main_queue(),{ () -> Void inprint("获取数据,并进行回调")callBack(jsonData:"返回的数据")})}}

http://www.dtcms.com/a/390784.html

相关文章:

  • STM32,新手学习
  • 保险丝Fuse
  • Kafka的持久化及副本机制总结
  • c() 函数在 R 中的用途详解
  • 使用Rsync+sersync实现数据实时同步
  • 关于conda forge长时间solving的问题以及如何解决
  • 前端学习手册-JavaScript基础语法(十)
  • 如何在 Linux 服务器上查看 GPU 型号与 CUDA 版本?
  • LeetCode hot 100 解题思路记录(三)
  • 小程序移动端设计UI(二)酒店自助入住小程序—东方仙盟练气期
  • 解决pnpm中的 Pinia 版本冲突:Cannot read properties of undefined (reading ‘_s‘)
  • 说一说大模型后训练的流程
  • 【微实验】激光测径系列(三)
  • Vim 使用从入门到精通
  • 快速实现 Excel 表格转 SVG:Java 教程
  • [极客大挑战 2019]LoveSQL
  • Excel和WPS表格中选中全部空单元格并输入相同内容
  • 日志易制造业安全UEBA解决方案
  • Java 将 HTML 转换为 Excel:实用指南
  • MySQL索引篇---数据结构的选择
  • 【STM32 CubeMX + Keil】 中断、NVIC 、EXTI
  • BIGO一面面试总结
  • Ansible-fetch模块
  • DevExpress WPF中文教程:DataGrid - 服务器数据和大型数据源
  • Vue项目不同页面显示不同的title
  • NW820NW825美光固态闪存NW829NW832
  • aosp13/14/15/16如何实现窗口局部区域高斯模糊毛玻璃效果及Winscope原生重大bug发现
  • Java微服务架构设计模式精解
  • 设计模式面试之单例模式常问知识点
  • 深入解析 MySQL 元数据锁 (MDL) 与 SHOW PROCESSLIST 实战