ios 延時操作及取消
阿新 • • 發佈:2018-11-08
在iOS開發中,我們經常會用到延時操作,下邊給大家簡單介紹兩種延時操作的方法。
1. - (void)performSelector:(SEL)aSelector withObject:(nullable id)anArgument afterDelay:(NSTimeInterval)delay;
[self performSelector:@selector(myMethod) withObject:nil afterDelay:1];
-(void)myMethod{
NSLog(@"1秒之後執行!");
}
在此種方法中,如果還沒到執行的時間,想要取消performSelector操作,也可以,如下
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(myMethod) object:nil];
2. dispatch_after(dispatch_time_t when , dispatch_queue_t queue , dispatch_block_t block);
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1*NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ NSLog(@"1秒之後執行!"); });