ios专题iOS-swift

十三、Swift3.0之闭包的定义和GCD实际使用

2017-02-24  本文已影响117人  ZhengYaWei

闭包定义的三种形式(无参数无返回值、有参数无返回值、有参数有返回值)

        //1、最简单的闭包
        //() -> () 没有参数,没有返回值
        //如果没有参数,没有返回值,可以省略,包括in也可以省略
        let b1 = {
            print("hello")
        }
        //执行闭包
        b1()
        
        //2、带参数的闭包
        //注意:闭包中,参数 返回值 实现代码都写在{ }中
        //需要使用关键字 in 来分割定义和实现
        //格式: {形参列表 -> 返回值类型  in 实现代码}
        //这个形式(x: Int) -> () 函数非常类似
        let b2 = {(x: Int) -> () in
           print(x)
        }
        //闭包调用
        b2(100)
       
        //3、带参数带返回值的闭包
        let b3 = {(x: Int) -> Int in
            return x + 250
        }
        //闭包调用
        print(b3(10))

Swift3.0中GCD的写法:

       DispatchQueue.global().async {
            print("耗时操作\(Thread.current)")
            
            //主队列
            DispatchQueue.main.async {
                print("主线程更新UI\(Thread.current)")
            }
        }
上一篇下一篇

猜你喜欢

热点阅读