[转]block(闭包)一点也不神秘—如何利用block进行回调

原文:http://blog.csdn.net/mobanchengshuang/article/details/11751671

原文是OC, 对应 Swift 3 如下:

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        print(" === 我在玩手机")
        print(" === 手机没电了")
        self.chargeMyIphone() {
            print(" === 出去逛街了")
        }
        
        //self.perform(#selector(chargeMyIphone), with: nil, afterDelay: 3)
        print(" === 我在看电视")
    }
    
    func chargeMyIphone(completion: @escaping ()->Void) {
        //Thread.sleep(forTimeInterval: 10)
        
        
        let delayInSeconds = 10.0
        let popTime = DispatchTime.now() + delayInSeconds
        DispatchQueue.main.asyncAfter(deadline: popTime, execute: {
            print(" === 电充好了")
            completion()
        })
    }