2010-10-26 51 views
0

我剛剛在一個應用程序中實現了幾個不同的iAd UIViewControllers.我在每一個代理方法中都有代表方法- (void)bannerViewDidLoadAd:(ADBannerView *)banner- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error顯示和隱藏橫幅,以及一個設置方法, viewDidLoad.重複使用多個類中的方法

我不希望這讓一切在第一UIViewController工作,然後將代碼複製到其他每個控制器,與ivar聲明,屬性等等...沿

這不可能是正確的。每當我改變一個,我都必須改變它們。我的問題(終於!)是:有沒有辦法編寫這些方法一次,以便所有類都可以訪問它們?

謝謝!

回答

0

我推薦創建一個c函數,如果子類化沒有意義。

如果此功能附帶其他相關功能,請將其與親屬一起放入庫中。如果名單變長,一個班級可能是更好的選擇。

如果這個函數是獨立的,並且只針對一個應用/項目,那麼只需創建一個聲明所有這些奇數位(如果它們必須在多個翻譯中重複使用)的文件。如果位文件真的很大,那麼可能會有一些設計問題。

有些人可能會推薦一個objc類別實例方法。我通常避免類別,因爲錯誤的機會是不必要的高。 C和C++函數/類型是鏈接的,如果它們沒有被引用,就很容易被剝離。一個類別,你不鏈接,它和方法中使用的符號不能被剝離。

您可以包括以此作爲您的單實例方法,如果兩個概念(或物理)的約束。否則,我建議讓他們分開。

+0

你能否詳細說明一下? C函數駐留在哪裏?我有一個單身對象,負責保存狀態等 - 可以C函數(我希望至少有兩個)在那裏?我會通過'adBanner'的實例來處理它嗎? – Steve 2010-10-26 22:16:28

+0

@Steve響應更新 – justin 2010-10-26 22:38:38

+0

謝謝,賈斯汀。在開始使用ObjC之前,我從未做過任何C/C++編程,所以我總是覺得自己從頭開始。我從來沒有聽說過類別。我將嘗試將這些方法放在他們自己的文件中,並在每個視圖控制器中導入該文件 - 敬請期待! – Steve 2010-10-27 14:45:50