最近學習了順延強制的幾種方法,分享一下:
1.performSelector(NSObject)方法 2.NSTimer方法 3.GCD方法 4.sleep(NSThread)方法
一、performSelector方法:
複製代碼 代碼如下:
[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.0f];
1.特點: 此方式要求必須在主線程中執行,否則無效。 是一種非阻塞的執行方式, 暫時未找到取消執行的方法。
二、定時器:NSTimer:
複製代碼 代碼如下:
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(delayMethod) userInfo:nil repeats:NO];
1.特點: 此方式要求必須在主線程中執行,否則無效。 是一種非阻塞的執行方式,可以通過NSTimer類的- (void)invalidate;取消執行
三、sleep方式:
複製代碼 代碼如下:
[NSThread sleepForTimeInterval:1.0f];
1.特點: 此方式在主線程和子線程中均可執行。是一種阻塞的執行方式,建議放到子線程中,以免卡住介面 沒有找到取消執行的方法
四、GCD方式:
複製代碼 代碼如下:
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{ [self delayMethod]; }); });
1.特點: 此方式可以在參數中選擇執行的線程。 是一種非阻塞的執行方式,沒有找到取消執行的方法。
以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。