gpt4 book ai didi

ios - performSelector:withObject:afterDelay:不排队选择器

转载 作者:行者123 更新时间:2023-12-01 18:27:17 26 4
gpt4 key购买 nike

我已经设置了一个块以在不同的队列上运行,并在延迟后调用另一个方法:

piemanQ = dispatch_queue_create(PIEMAN_QUEUE_NAME, NULL);
dispatch_async(piemanQ, ^{
[self performSelector:@selector(sendReadyToPieman) withObject:nil afterDelay:1.0];
});

我希望一秒钟后 @selector(sendReadyToPieman)触发,但是什么也没发生。我已经阅读了 performSelector:withObject:afterDelay:上的doco,它谈到了通过计时器在当前队列上添加的方法。我检查了当前队列的运行循环模式,但返回nil。

我确定我之前已经做过这种代码,但是我已经在两个不同的地方尝试过了,在两种情况下都没有运行。但是,如果我将其替换为 dispatch_after(...),则一切正常。

谁能给我一些启示?

最佳答案

您应该将操作放到NSOperationQueue上:

NSOperationQueue *piemanQ = [[NSOperationQueue alloc] init];
piemanQ.name = @"some name";
[piemanQ addOperationWithBlock:^{
[self performSelector:@selector(sendReadyToPieman) withObject:nil afterDelay:1.0];
}];

这是自动异步的。最好使用Objective-C解决方案,而不是使用C解决方案来解决问题。

关于ios - performSelector:withObject:afterDelay:不排队选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12351350/

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