// dispatch_after能讓咱們添加進隊列的任務延時執行,該函數並非在指定時間後執行處理,而只是在指定時間追加處理到dispatch_queue
該方法的第一個參數是time,第二個參數是dispatch_queue,第三個參數是要執行的block。
dispatch_time_t有兩種形式的構造方式,第一種相對時間:DISPATCH_TIME_NOW表示如今,NSEC_PER_SEC表示的是秒數,它還提供了NSEC_PER_MSEC表示毫秒。第二種是絕對時間,經過dispatch_walltime函數來獲取,dispatch_walltime須要使用一個timespec的結構體來獲得dispatch_time_t。
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(duration * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
});函數