0
我正在通過「Big Nerds Ranch」Objective-C書籍工作,並在其中一章中注意到他們正在設置觀察者來偵聽時區更改,以創建方法在名爲zoneChanged
的.m文件中,但它不需要在.h中聲明?如何在不聲明的情況下使用方法?是因爲它只會被觀察者觸發嗎?某些方法未在.h文件中聲明
我讀到,如果你在.m文件中聲明一個方法,那麼它將是私人的,但它似乎並沒有在.m文件中聲明。
我正在通過「Big Nerds Ranch」Objective-C書籍工作,並在其中一章中注意到他們正在設置觀察者來偵聽時區更改,以創建方法在名爲zoneChanged
的.m文件中,但它不需要在.h中聲明?如何在不聲明的情況下使用方法?是因爲它只會被觀察者觸發嗎?某些方法未在.h文件中聲明
我讀到,如果你在.m文件中聲明一個方法,那麼它將是私人的,但它似乎並沒有在.m文件中聲明。
如何在不聲明的情況下使用方法?
他們正在做的是直接提供定義本身。問題是如果它沒有在頭文件中聲明,取決於此文件的任何其他文件都不知道zoneChanged
函數存在。但是,您可以通過關鍵字extern
關聯它,這是一個不同的故事。
就編譯器而言,它應該知道當前編譯單元中的函數是什麼,否則編譯器會抱怨。如果你轉發聲明瞭函數,你有希望編譯器的定義是在哪裏,但可能或可能不在調用點之前。如果你不提供定義,鏈接器抱怨。
因此,因爲zoneChanged僅作爲觀察者使用,而不是其他文件,所以不需要聲明? – Bot 2012-01-09 15:13:22