一. performSelector
/** 第一個參數:需求延遲執行的辦法 第二個參數:要傳入的參數(id類型) 第三個參數:延遲的時間 */ [self performSelector:@selector(testMethod1:) withObject:@"aaa" afterDelay:5.0];
二. NSTimer
// 1.延遲執行某一段代碼
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:5.0 repeats:NO block:^(NSTimer * _Nonnull timer) {
// 需求延遲執行的代碼
}];
// 2.延遲執行某一個辦法
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(testMethod1:) userInfo:nil repeats:NO];
// 假如運用下面兩種延遲執行的辦法,建議將定時器添加到NSRunLoop的Common形式中,避免其他控件的交互影響到定時器
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
// 取消定時器
[timer invalidate];
// 取消的同時要銷毀定時器
timer = nil;
三. NSThread
該辦法使以後線程進入休眠形態來到達延遲的目的
// 只要一個參數:延遲的時間 [NSThread sleepForTimeInterval:5.0];
四. GCD
// 第一個參數:延遲的時間
// 可以經過改動隊列來改動線程
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
// 需求延遲執行的代碼
};
【延遲執行的常用辦法】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!