swift

20.swift-block

2021-07-23  本文已影响0人  ChaosHeart

1.实现:

import UIKit

class AFNetHttp: NSObject {

    //闭包类型 : (参数列表)->(返回值类型)
    
    ///获取数据
    func loadData(callBack : @escaping (_ result : String) -> ()) {
        //并列异步
        DispatchQueue.global().async {
            print("异步:%@",Thread.current);
            //串联同步
            DispatchQueue.main.sync {
                print("主线程%@",Thread.current);
                //调用闭包
                callBack("result")
            }
        }
    }
    
}

2.调用:

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
      
    }

 //override 重写父类的方法
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        // 尾随闭包,如果闭包作为方法的最后一个参数,那么闭包可以将()省略掉
        //0.
        AFNetHttp.init().loadData { (result) in
            print("%@",result);
        }
        //1
        AFNetHttp.init().loadData() { (result) in
            print("%@",result);
        }
        //2
        AFNetHttp.init().loadData (callBack: { (result) in
            print("%@",result);
        })
    }
     //释放
    deinit {
        print("释放");
    }
    
}
上一篇 下一篇

猜你喜欢

热点阅读