gpt4 book ai didi

ios - performSelector:withObject:afterDelay: 在 NSOperation 中

转载 作者:可可西里 更新时间:2023-11-01 05:42:25 24 4
gpt4 key购买 nike

我在 NSOperationQueue 管理的一些 NSOperation 对象中执行一些代码。该代码还包含使用 performSelector:withObject:afterDelay: 的延迟方法调用。

问题是,应该延迟调用的相应选择器根本没有调用

已阅读this answer to a StackOverflow question ,我猜这是因为 NSOperation 已经完成并且它的线程甚至不再存在,“忘记”了对选择器的预定调用。

我该如何解决这个问题?如何延迟调用 NSOperation 中的方法?

最佳答案

一种可能是使用 Grand Central Dispatch,即 dispatch_after():

double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_after(popTime, queue, ^{
...
});

除了 dispatch_get_global_queue(),您当然也可以创建自己的调度队列或使用带有 dispatch_get_main_queue() 的主队列。

关于ios - performSelector:withObject:afterDelay: 在 NSOperation 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8680227/

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