美文网首页iOS-swiftios专题Swift开发
十四、Swift3.0之闭包回调传递参数和尾随闭包

十四、Swift3.0之闭包回调传递参数和尾随闭包

作者: ZhengYaWei | 来源:发表于2017-02-24 00:47 被阅读1036次

通过闭包回调传递参数

//completion是有参数,无返回值的闭包
    func loadData(completion: @escaping (_ result: [String]) -> ()) -> () {
        //将任务添加到队列,指定执行任务的函数。解释:队列调度任务(block或闭包),以同步或异步的方式执行
        DispatchQueue.global().async {
            print("耗时操作,网络数据请求中\(Thread.current)")
            //休眠
            Thread.sleep(forTimeInterval: 3)
            //模拟获取结果
            let json = ["头条","八卦","出大事了"]
            
            //主队列
            DispatchQueue.main.async {
                print("主线程更新UI\(Thread.current)")
                //回调,执行闭包(通过传递的参数)
                //传递异步获取的结果json
                completion(json)
            }
        }
    }

外部的调用形式

     //注意这是一个尾随闭包
      loadData { (result) in
            print("获取的数据\(result)")
       }

关于尾随闭包,说明上面的调用形式实际上是一个尾随闭包。如果函数的最后一个参数是闭包,函数参数可以提前结束,最后一个参数直接使用{}包装闭包的代码。上面这个尾随闭包原本有自己的闭包书写形式,但是当处于代码最后的时候,为了更便于读懂,所以会有尾随闭包的写法,这种尾随闭包的写法让代码更衣读懂。

       //尾随闭包的写法
        loadData { (result) in
            print("获取的数据\(result)")
        }
        //原始形式的写法
        loadData(completion: {(result: [String]) -> () in
             print("获取的数据\(result)")
        })

相关文章

  • 十四、Swift3.0之闭包回调传递参数和尾随闭包

    通过闭包回调传递参数 外部的调用形式 关于尾随闭包,说明上面的调用形式实际上是一个尾随闭包。如果函数的最后一个参数...

  • 【Swift】关于闭包的几种写法

    闭包 闭包是一个特殊的函数,经常用于回调 简单举个例子:在方法中定义闭包实现回调传值 尾随闭包:1.如果闭包是函数...

  • Swift-尾随闭包、值捕获

    尾随闭包 如果你需要将一个很长的闭包表达式作为最后一个参数传递给函数,可以使用尾随闭包来增强函数的可读性。尾随闭包...

  • swift-闭包

    闭包 闭包定义 闭包简化 - 尾随闭包 闭包参数 闭包返回值 闭包的循环引用

  • 闭包

    闭包 闭包表达式 尾随闭包 数组的排序 忽略参数 闭包 堆空间分配 如果没有赋值 里面就是垃圾数据bt 打印函数调...

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

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

  • groovy-闭包

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

  • 第三周第二天

    第三周第二天 函数作为参数,匿名函数(闭包)尾随闭包 闭包,尾随闭包 数组的过滤,缩减,映射

  • swift中的尾随闭包

    swift中的尾随闭包 如果需要将一个很长的闭包表达式作为最后一个参数传递给函数,可以使用尾随闭包来增强函数的可读...

  • 07-闭包

    闭包表达式(Closure Expression) 闭包表达式的简写 尾随闭包 示例 - 数组的排序 忽略参数 闭...

网友评论

    本文标题:十四、Swift3.0之闭包回调传递参数和尾随闭包

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