我在一个类方法中,我想在延迟后从同一个类触发另一个类方法。看来我不能使用
[MyClass performSelector:@selector(myMethod) withObject:nil afterDelay:1]
还有其他选择吗?
编辑:
我的错。我假设该调用在类方法中不可用,因为在我编写它时它没有自动完成。正如几个人在这里指出的那样,它实际上工作得很好。不知道为什么它在我的情况下没有自动完成,但是学到了关于在发生这种情况时做出假设的教训。感谢大家。
我在一个类方法中,我想在延迟后从同一个类触发另一个类方法。看来我不能使用
[MyClass performSelector:@selector(myMethod) withObject:nil afterDelay:1]
还有其他选择吗?
编辑:
我的错。我假设该调用在类方法中不可用,因为在我编写它时它没有自动完成。正如几个人在这里指出的那样,它实际上工作得很好。不知道为什么它在我的情况下没有自动完成,但是学到了关于在发生这种情况时做出假设的教训。感谢大家。
您-class
用来获取对该类的实际引用,然后像这样向它发送消息:
[[MyClass class] performSelector:@selector(myClassMethod) withObject:nil afterDelay:1.0];
您也可以使用 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];
});