1. 呼叫與延遲方法如下
GitHub:
https://github.com/f40706/delay_and_call_method
2. 程式碼
按下onDelayMethodPressed,10秒後會呼叫execute Function
按下onCancelMethodPressed,會"取消"延遲呼叫的execute Function
2022-03-22 22:37:18.903931+0800 delay_and_call_method[3968:102311] delay call
2022-03-22 22:37:28.905523+0800 delay_and_call_method[3968:102311] execute
2022-03-22 22:37:34.219536+0800 delay_and_call_method[3968:102311] delay call
2022-03-22 22:37:35.618120+0800 delay_and_call_method[3968:102311] cancel execute
2022-03-22 22:37:56.714777+0800 delay_and_call_method[3968:102311] delay call
2022-03-22 22:37:58.981749+0800 delay_and_call_method[3968:102311] cancel execute
2022-03-22 22:38:24.482147+0800 delay_and_call_method[3968:102311] delay call
2022-03-22 22:38:34.483330+0800 delay_and_call_method[3968:102311] execute
實際功能,可以下載GitHub範例
- (IBAction)onDelayMethodPressed:(UIButton *)sender { [self delayMethod:10]; } - (IBAction)onCancelMethodPressed:(id)sender { [self cancelDelayMethod]; } - (void) delayMethod:(int)delay { [self performSelector:@selector(execute) withObject:nil afterDelay:delay]; NSLog(@"delay call"); } - (void) cancelDelayMethod { [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(execute) object:nil]; NSLog(@"cancel execute"); } - (void) execute { NSLog(@"execute"); }
發表迴響