gpt4 book ai didi

ios - 如何选择一种方法在一定秒后执行选择器?

转载 作者:行者123 更新时间:2023-11-28 19:54:34 26 4
gpt4 key购买 nike

这三种方法有什么区别

1. sleep(5)
2. dispatch_after(<#dispatch_time_t when#>, <#dispatch_queue_t queue#>, <#^(void)block#>)
3. performSelector:<#(SEL)#> withObject:<#(id)#> afterDelay:<#(NSTimeInterval)#>

方法二中如何选择队列

最佳答案

方法一会暂停执行当前方法5秒,所以代码如下:

NSLog(@"Before sleep");
sleep(5)
NSLog(@"after sleep");

两个日志之间会有 5 秒的延迟。

方法 2 使用中央调度 (GCD) 来安排代码块在指定队列上的执行。这可能是主队列或后台队列 - 由您指定队列。当前方法的执行将立即继续 dispatch_after 之后的代码,因此如下代码:

NSLog(@"Before dispatch");
dispatch_after(5,dispatch_get_main_queue, ^{
NSLog(@"in dispatch");
}
NSLog(@"after dispatch");

会打印

Before dispatch

after dispatch

5秒后

in dispatch

方法 3 与方法 2 的结果相同,只是它使用 runloop 调度而不是 block 和 Grand Central Dispatch 在当前线程上调用方法(选择器)。

方法 2 是最“现代”的 - 使用 block 和 GCD。

关于ios - 如何选择一种方法在一定秒后执行选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27199289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com