我已经设置了一个块以在不同的队列上运行并在延迟后调用另一个方法:
piemanQ = dispatch_queue_create(PIEMAN_QUEUE_NAME, NULL);
dispatch_async(piemanQ, ^{
[self performSelector:@selector(sendReadyToPieman) withObject:nil afterDelay:1.0];
});
我预计一秒钟后@selector(sendReadyToPieman)
会发生火灾,但是什么也没发生。我已经通读了 doco performSelector:withObject:afterDelay:
,它谈到了通过当前队列上的计时器添加的方法。我检查了当前队列运行循环模式,但它返回 nil。
我确定我以前做过这种代码,但是我在两个不同的地方尝试过,在这两种情况下它都没有运行。但是,如果我将其替换为dispatch_after(...)
一切正常。
任何人都可以解释一下吗?