一. 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(), ^{ // 需求延遲執行的代碼 };
【延遲執行的常用辦法】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!