• 闭包-01-Swift


    //
    //  ViewController.swift//  闭包
    
    import UIKit
    
    class ViewController: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
            /*
            闭包 类似于 block
            block是C语言的, 类似于匿名函数
            闭包是定义函数的, Swift中函数就是一种特殊的闭包
            闭包的使用和block一样, 用于保存一段代码, 用作回调, 用作执行耗时操作
            闭包格式
            {
                (参数) -> 返回值类型 
                in
                执行语句
            }
            */
    //        loadData()
            /*
            loadData2 { () -> () in
                print("执行回调")
            }
            */
            /*
            闭包简写:
            1.如果没有参数, 没有返回值, in和in之前的东西可以省略
            2.如果闭包是函数的最后一个参数, 可以写在()后面  -- 尾随闭包
            3.如果只有一个闭包参数, 那么()也可以省略  -- 尾随闭包
            */
            /*
            loadData2 ({
                print("执行回调")
            })
            */
            /*
            loadData2(){
                print("执行回调")
            }
            */
            loadData2{
                print("执行回调")
            }
            
            loadData3("lnj") { () -> () in
                print("执行回调")
            }
        }
        
        
        func loadData3(name: String, finished: () -> ()){
            print("name = (name)")
            finished()
        }
        
        func loadData2(finished: () -> ()){
            print("耗时操作")
            
            // 回调
            finished()
        }
        
        func loadData(){
            dispatch_async(dispatch_get_global_queue(0, 0)) { () -> Void in
                print(NSThread.currentThread())
                print("耗时操作")
                
                dispatch_async(dispatch_get_main_queue(), { () -> Void in
                    print(NSThread.currentThread())
                    print("回到主线程更新UI")
                })
            }
        }
    
    }
    时光见证了成长,还很无知,我想一点点幼稚转为有知!
  • 相关阅读:
    非网管交换机和网管交换机的区别
    百兆工业交换机与千兆工业交换机如何计算码率?
    光纤收发器的测试内容介绍
    使用expect在script中切换到root用户(精华)
    彻底解决ssh.invoke_shell() 返回的中文问题
    Python3之paramiko模块
    linux expect详解
    Apache HTTP Server 虚拟主机配置
    Apache 配置详解
    apache 基本配置
  • 原文地址:https://www.cnblogs.com/foreveriOS/p/5473780.html
Copyright © 2020-2023  润新知