我在一個類方法中,並且想要在延遲後從同一個類中觸發另一個類方法。似乎沒有我可以使用延遲後可以執行類方法嗎?
[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如果你好奇爲什麼... –