我在一个类方法中,并且想要在延迟后从同一个类中触发另一个类方法。似乎没有我可以使用延迟后可以执行类方法吗?
[MyClass performSelector:@selector(myMethod) withObject:nil afterDelay:1]
还有其他选择吗?
被修改:
我的不好。我认为这个调用在类方法中是不可用的,因为它不会像我写的那样自动完成。正如一些人在这里指出的那样,它实际上工作正常。不知道为什么它没有在我的情况下自动完成,但是在发生这种情况时学到了一个关于做出假设的教训。感谢大家。
你是什么意思的延迟?为什么不能在第一种方法之后调用第二种方法? – user2277872
我的意思是在调用该方法之前延迟n秒。如果某个条件不满足,我想在n秒后再次尝试方法调用。实例方法没有问题,但performSelector:afterDelay:似乎不能从类方法中使用。 –
在Objective-C中,所有类对象都是基类的实例。因此,如果MyClass继承自NSObject,那么NSObject的所有* instance *方法也是MyClass的* class *方法。你可以阅读更多在http://www.sealiesoftware.com/blog/archive/2009/04/14/objc_explain_Classes_and_metaclasses.html如果你好奇为什么... –