美文网首页
闭包基本使用

闭包基本使用

作者: ZLWorm | 来源:发表于2015-12-27 00:07 被阅读0次

GCD异步

  • 模拟在子线程加载数据
func loadData() {
    dispatch_async(dispatch_get_global_queue(0, 0), { () -> Void in
        print("耗时操作 \(NSThread .currentThread())")
    })
}
  • 尾随闭包: 如果闭包是参数里面最后一个参数,那么参数的括号可以提前关闭,闭包可以写在外面
func loadData() {
    dispatch_async(dispatch_get_global_queue(0, 0)) { () -> Void in
        print("耗时操作 \(NSThread .currentThread())")
    }
}
  • 闭包的简写: 如果闭包中没有参数和返回值,可以省略
func loadData() {
    dispatch_async(dispatch_get_global_queue(0, 0)) {
        print("耗时操作 \(NSThread .currentThread())")
    }
}

自定义闭包参数,实现主线程回调

override func viewDidLoad() {
        super.viewDidLoad()
        
        // 网络请求完成之后执行的闭包
        let clourse = { (response: String) -> () in
            print("数据请求完毕:\(response)")
            print("更新ui")
        }
        
        // 加载数据,传入数据加载完成要执行闭包
        loadData(clourse)
        
        
    }
// 这个方法是专门用来加载数据的
    func loadData(callback: (response: String) -> ()){
        
        // 模拟异常加载数据
        dispatch_async(dispatch_get_global_queue(0, 0)) {
            // 执行耗时操作
            NSThread.sleepForTimeInterval(2)
            // 模拟请求回来的数据
            let response = "办证 138xxxxx"
            
            dispatch_async(dispatch_get_main_queue(), {
                // 在主线程里面执行的代码,比如 更新 UI
                
                // 把请求回来的数据通过闭包的方式把数据回调到外面
                print(response)
                callback(response: response)
            })
        }
    }
}

相关文章

  • Swift基础语法-闭包,闭包函数回调,尾随闭包,闭包捕获值,循

    本节知识点 闭包的基本概念 闭包基本使用 闭包表达式作为回调函数 闭包的多种写法(尾随闭包) 闭包表达式优化 闭包...

  • 闭包基本使用

    GCD异步 模拟在子线程加载数据 尾随闭包: 如果闭包是参数里面最后一个参数,那么参数的括号可以提前关闭,闭包可以...

  • swift3语法(七)

    闭包 闭包的表达式{ (参数列表) -> 返回值类型 in 代码执行体} 基本使用 // 定义闭包参...

  • Swift 闭包

    1、闭包简介 在讲解闭包之前,我们先讲解一下OC中的block 2、 闭包基本使用 3、闭包的参数和返回值 实例:...

  • groovy-闭包

    定义和执行闭包 闭包作为参数返回 闭包作为参数传递 闭包使用外部变量 注意: 闭包可使用(引用)闭包外部定义的变量...

  • 100 Days of SwiftUI - Day 6&7 Cl

    Closure 闭包 1.创建基本的闭包 Swift 使我们可以像使用其他类型一样使用函数,你可以创建一个函数并将...

  • iOS开发之Swift篇(7)—— 闭包

    目录 版本 闭包的定义及使用 尾随闭包 逃逸闭包 版本 Xcode 11.0Swift 5.1 闭包的定义及使用 ...

  • Gradle开发-Groovy闭包

    # 闭包 闭包的基础知识 闭包的使用 闭包 this,owner,delegate 的理解 总结 ## 闭包的基础...

  • 闭包

    闭包的基本语法 闭包的内容捕获 闭包和函数的引用类型

  • 06-jQuery原理

    jQuery基本结构 jQuery的本质是一个闭包 jQuery为什么使用闭包来实现:为了避免多个框架的冲突 jQ...

网友评论

      本文标题:闭包基本使用

      本文链接:https://www.haomeiwen.com/subject/pxjbhttx.html