Objective-C 延遲與取消呼叫Function

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");
}


Objective-C


訂閱Codeilin的旅程,若有最新消息會通知。

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

WordPress.com.

向上 ↑

%d 位部落客按了讚: