2011-03-23 117 views
3

給出類似下面的方法,它返回一個類...調用靜態方法的一類

-(Class)getClass 
{ 
    return [MyAwesomeClass class]; 
} 

...我該怎麼稱呼這個類的靜態方法?我想這一點,但它沒有工作...

Class theClass = [anInstance getClass]; 
[theClass someStaticMethod]; 

我應該如何呼籲theClass一個靜態方法?

編輯補充: 看來我做的是正確的事情,而其他事情正在導致崩潰。現在我需要弄清楚如何擺脫沒有找到方法someStaticMethod的警告。我應該投什麼theClass

+0

靜態方法或類崩潰方法? – 2011-03-23 20:11:30

+0

對於我目前的使用,一個靜態的方法,但要麼是有用的 – 2011-03-23 20:14:13

+0

你的意思是'+ classMethod'嗎? – Richard 2011-03-23 20:14:43

回答

4

你完全按照你寫的方式來做,假設有問題的班級迴應someStaticMethod

如果它不能正常工作,那麼其中一個最有可能的情況:

  • 您不必類你認爲
  • 類未對消息作出迴應
  • 您正確聲明
  • 沒有匯入其中,該方法被聲明的標題中的方法
  • 的方法本身是越野車
2

這是一個古老的問題,但我回答完整性。如果你使用的ID,而不是類,將工作

id theClass = [anInstance getClass]; 
[theClass someStaticMethod]; 

編譯器會很樂意與這個動態類型,但你必須確保類將對+ someStaticMethod迴應,否則將在運行時