2011-04-07 60 views
-1

我有一個理論問題:但是每個方法和IbAction都必須在.h中聲明???因爲如果我在.m中寫入方法(void)而不是.h,那麼項目沒有問題。客觀c:方法關係.h和.m

回答

1

如果你想訪問從另一個類的函數你說的.h頭文件要導入,使編譯器瞭解在哪裏找到這些功能以及如何翻譯它們。

+1

這實際上是完全錯誤的,雖然可以理解,所以沒有投票權。 Objective-C使用動態分派,因此重要的是對象知道如何在運行時響應該方法。您需要在頭文件中放置Objective-C方法的唯一原因是阻止編譯器認爲您已經忘記定義它們並禁止警告(除非您聲明方法,否則它將假定所有參數均爲對象)。 – JeremyP 2011-04-07 10:34:27

1

這是如何實施你的課程的指導原則。

用「C」來表達它。您可以在.h(頭文件)文件中定義您的原型,並在.c中執行實現,在這種情況下執行.m文件。

這兩種方法都可以工作,只是沒有在.M重新定義它...

0

不,他們並不需要在標題中聲明。

當嘗試按類別或擴展名創建方法「private」時,通常會忽略頭中的聲明。無論這或多或少是危險的,而不是將標題中的標題聲明爲私人標識是有爭議的,並且取決於使用您的對象的人。

在單獨的頭文件中聲明與基類型不相關的類別也很好。

0

是的,沒有必要在.h中聲明方法,因爲在目標c中任何消息都可以傳遞給任何對象。這就是爲什麼它不會給出任何錯誤,只是警告「ABClass可能不會響應messageABC」。對於像我這樣只討厭警告的人在.h中宣佈它。這是一個很好的做法,因爲不在頭文件中聲明它更容易崩潰,因爲你只是忽略了警告,實例無法處理該消息,並且你的應用程序會說「你好Crash先生」。和「Bye-Bye」給開發者。