美文网首页
Swift之GCD的变化

Swift之GCD的变化

作者: oh_flying | 来源:发表于2017-05-24 20:28 被阅读21次

GCD在swift中有一些变化,大概是这样的,大家可以去wwdc看看具体的内容。

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    //‘尾’随闭包
    //如果函数的最后一个参数是闭包,函数参数可以提前结束,最后一个参数直接使用{}包装闭包的代码
//        loadData { (jieguo) in
//            print("获取的新闻数据 \(jieguo)")
//        }
    //关于尾随闭包
    // 要能看懂
    //能够慢慢编写 大多数xcode的智能提示可以补全
 
    //函数本身编写的结果
    
    loadData(completion: { (jie) -> () in
        print(jie)
    })
}

func demo() ->() {
    //尾随闭包
    DispatchQueue.global().async {
        //嵌套的 gcd xcode不会变成尾随的闭包
        DispatchQueue.main.async(execute: { 
            
        })
    }
}

/**
 在异步执行任务,获取结果,通过block/闭包 回调
 闭包的应用场景和block完全一致
*/

   func loadData(completion: @escaping ([String])->()) -> (){
        //将任务添加到队列,指定执行的任务函数
        //翻译:队列调度任务(block/闭包),以同步/异步的方式执行
        DispatchQueue.global().async {
            
            print("耗时操作 \(Thread.current)")
            //休眠
            Thread.sleep(forTimeInterval: 1.0)
            //获得结果
            let json = ["头条","出事了","八卦"]
            
            //主队列回调
            DispatchQueue.main.async {
                print("主线程更新UI \(Thread.current)")
                
                //回调 -》执行闭包(通过参数传递的)
                //传递异步获取的结果
                completion(json)
            }
        }
    

 }
}

对于尾随闭包我的理解也不是很透彻,后面理解的再深一点,然后再补充在这儿。

相关文章

  • Swift之GCD的变化

    GCD在swift中有一些变化,大概是这样的,大家可以去wwdc看看具体的内容。 对于尾随闭包我的理解也不是很透彻...

  • GCD

    iOS多线程 Swift4 GCD深入解析swift GCD 的一些高级用法GCD 之线程组(Dispatch G...

  • iOS多线程-GCD(Swift)

    GCD准确的来讲应该叫做并发编程技术,因为swift3.0后GCD使用方式有很大的变化这里用Swift来重新整理一...

  • Swift-GCD

    对原Swift-GCD升级 SwiftGCD Swift-GCD Package GCDGroup, GCDQue...

  • Swift3 GCD

    Swift3 的gcd变化很大,这里列举一下,大家可以有个对照: 1、Create a serial queue ...

  • swift GCD-定时器(DispatchSourceTime

    前言: 了解swift GCD 与OC GCD请看我的其他总结文章,这篇文章只是对swift GCD定时器的一个实...

  • swift中GCD的使用详情

    想看swift3.0使用GCD,请点击GCD详解 想看swift3.0闭包的使用和介绍,请点击Swift版闭包使用...

  • Swift 3.0 中GCD的使用

    Swift 3.0 中GCD的使用

  • swift GCD 教程

    GCD in Swift写的不错哦

  • Swift 3必看:从使用场景了解GCD新API

    Swift 3必看:从使用场景了解GCD新API Swift 3必看:从使用场景了解GCD新API

网友评论

      本文标题:Swift之GCD的变化

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