gpt4 book ai didi

ios - 从 NSTimer 回到主线程

转载 作者:行者123 更新时间:2023-11-28 20:09:55 27 4
gpt4 key购买 nike

我有一个 NSTimer 定义如下:

[NSTimer scheduledTimerWithTimeInterval:self.speed target:self selector:@selector(displayTextOverTime:) userInfo:nil repeats:YES];

方法 displayTextOverTime 显示一些文本,然后一旦显示最后一段文本,它就会使它的计时器无效并调用另一个方法进行处理(它本身可能需要启动一个 NSTimer 来显示文本)。

有没有标准的方法来做这类事情?

我最初的方法是简单地让 displayTextOverTime 直接调用另一个方法,但这让我在嵌套 NSTimer 的地方出现了一些奇怪的行为(它永远不会死,因为即使它们无效并且不会再次循环,它们也没有“完成”,因为它们内部的计时器仍在运行......或者......什么?),这不是我想要的。有什么方法可以说“调用此方法,但在 NSTimer 之外执行”,就像回到主线程一样?

具体来说,我看到被杀死的计时器比启动的计时器多(我有一个方法可以杀死任何传入的计时器,这样我就可以在它被杀死时进行记录)。

最佳答案

要准确回答您的问题,您可以使用 Grand Central Dispatch 在计时器之外运行一个函数。如果你想运行这个函数:

dispatch_async(dispatch_get_main_queue(), ^{
(your function or block of code goes here)
});

这将在您的计时器之外运行该 block 。您可以选择在主线程、全局线程或带有您创建的队列的自定义线程上执行此操作。

关于ios - 从 NSTimer 回到主线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20714244/

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