zoukankan      html  css  js  c++  java
  • 闭包-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")
                })
            }
        }
    
    }
    时光见证了成长,还很无知,我想一点点幼稚转为有知!
  • 相关阅读:
    pcs7 opc 连接问题
    nuget 多个程序引用同一个库时,当个这个库更新时,引用的程序都要跟新,否则会在运行时出错
    nuget update FileConflictAction
    a
    C#版本
    .NET Framework版本与CLR版本之间的关系
    c# 将一种数组类型转成另一种数组类型
    tfs 清除缓存,在需要时
    java枚举和仿枚举
    java反射的用法
  • 原文地址:https://www.cnblogs.com/foreveriOS/p/5473780.html
Copyright © 2011-2022 走看看