天天看点

ios-初识swift(三)ios-初识swift(三)

ios-初识swift(三)

本次要写的是有关于闭包的简单用法以及swift 4.0的模拟异步加载网络数据,完成回调

闭包(一切理解皆在代码中)
//闭包
    func closer(){
        /**
         1.闭包的所有代码【参数 返回值 执行代码】都放在{}中
         2.in 是用来区分函数定义和执行代码
         */
        let sumFunc = {
            (x:Int,y:Int) -> Int
            in
            return x+y
        }
        print(sumFunc(,))
        //简单闭包,无参数无返回值
        let simpleCloser={
            print("hello")
        }
        simpleCloser()
    }
           
异步加载网络数据,完成回调
先写主函数的调用方法:

//尾随闭包
        loadData { (html) in
            print("完成回调\(html)")
        }


再写主方法:
//异步加载网络数据,完成回调
    func loadData(finished:@escaping (_ html:String) -> ()){
        DispatchQueue.global().async {
            print("耗时操作\(Thread.current)")
            //通常加载数据

            //异步完成之后,通过block回调
            DispatchQueue.main.async(execute:{
                print("更新UI的线程\(Thread.current)")
                finished("<html></html>")
            })
        }
    }