闭包的基本概念
来源:互联网 发布:cf刷枪源码 编辑:程序博客网 时间:2024/05/22 02:30
//// ViewController.swiftimport UIKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() /* 闭包和OC中的Block非常相似 OC中的Block类似匿名函数 闭包是用来定义函数 作用:Block是用于保存一段代码,在需要的时候执行 闭包也是。 做一些耗时操作经常用到 */ /* 闭包的基本格式: { () -> () in //code... } */ /* 闭包的几种格式: 1.将闭包通过实参传递给函数 */ loadData(10,finished: {() -> () in print("被回调了") } ) //2.如果闭包是函数的最后一个参数,那么闭包可以写在()后面 loadData(10){() -> () in print("被回调了") } // 3.如果函数只接收一个参数,并且这个参数是闭包,那么()可以省略 say{() ->() in print("hello") } /* 闭包的简写: 如果闭包没有参数也没有返回值,那么in之前的东西都可以不写,包括in */ } func say(finished: () -> ()) { // } // 接收一个闭包,加载数据 func loadData(num:Int, finished:() -> ()) { // 执行耗时操作 // 执行闭包,回调通知调用者 finished(); } override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { // Swift中dispatch_async回调的是一个闭包 dispatch_async(dispatch_get_global_queue(0, 0)) { () -> Void in print(NSThread.currentThread()) // 执行耗时操作 dispatch_async(dispatch_get_main_queue(), { () -> Void in print(NSThread.currentThread()) // 主线程更新UI }) } }}
0 0
- 闭包的基本概念
- 包的基本概念
- JavaScript闭包基本概念
- 闭包的基本概念及闭包的三种写法
- linux驱动由浅入深系列:usb子系统之一(域、包、事务、传输的基本概念)
- 基本概念的澄清
- 一、ATM的基本概念
- J2ME的基本概念
- web services的基本概念
- 几何网络的基本概念
- OSWorkflow的基本概念[原]
- MMS的基本概念
- java的一些基本概念
- 信用卡的基本概念
- CDMA的基本概念
- 工作流的一些基本概念
- J2me的基本概念
- Web标准的基本概念
- 接口与抽象类的区别
- 十大ios开发者喜爱的开源库
- poj-3461 Oulipo KMP
- 秒杀业务架构优化之路
- 快速判断素数,六素数法
- 闭包的基本概念
- LeetCode#106. Construct Binary Tree from Inorder and Postorder Traversal
- CCF 最优配餐
- leetcode——234——Palindrome Linked List
- JVM 堆内存设置原理
- iOS个人整理36-即时通信2 XMPP 好友列表 聊天信息
- SSH框架整合发现的问题,必须放置在Spring中配置
- java回顾篇——面向对象的封装,继承,多态
- OpenCV InRange函数