我在一个类方法中,我希望在延迟之后从同一个类触发另一个类方法。似乎没有我可以使用
[MyClass performSelector:@selector(myMethod) withObject:nil afterDelay:1]
还有其他选择吗?
编辑:
我的坏。我假设调用在类方法中不可用,因为它没有像我写的那样自动完成。正如一些人在这里指出的那样,它确实很好。不确定为什么它在我的情况下没有自动完成,但是在这种情况下学到了关于做出假设的教训。谢谢大家。
答案 0 :(得分:4)
您使用-class
获取对该类的实际引用,然后将其发送为:
[[MyClass class] performSelector:@selector(myClassMethod) withObject:nil afterDelay:1.0];
答案 1 :(得分:1)
您也可以使用dispatch_after
double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[MyClass myClassMethod];
});