2012-08-13 66 views
0

我已經在一個特定的視圖控制器中成功地在我的應用程序中實現了iAds,並且我想將它們放入許多其他視圖控制器中。爲每個視圖控制器重複編寫相同的iAd代碼似乎是多餘的。我希望能夠將所有這些iAds的代碼放在一個類中,並在需要時隨時調用它。所以我聽說過所謂的助手類和類方法(+),但我不確定這是我需要的。任何人都能帶領我走向正確的方向嗎?一個例子會很有幫助。可以在所有其他類中使用的全局類

編輯

我創建了一個單例類沒有視圖控制器,我認爲這就是正確的。反正在iAd的實現,也有很多行代碼,其中包括增加一個子視圖,如

[self.view addSubview:adView]; 

的單告訴我,它不承認「視圖」。所以當我從其他視圖控制器調用單例時,是否需要將視圖傳遞給單例?謝謝

+0

我已經編輯了您的免責聲明;問題應該只包含技術內容。避免抨擊你的想法可能是一個太基本問題的最好辦法不是道歉,而是做一些研究並詢問結果。例如,您是否在SO上搜索了您的問題中的關鍵術語? http://stackoverflow.com/search?q=%5Bcocoa%5D+global+class – 2012-08-13 22:01:18

+0

@ W'rkncacnter好吧有道理謝謝你。除了你發給我的主要是指全局變量,我不知道是我在找什麼?我希望能夠訪問所有內容 – 2012-08-13 22:05:18

+0

嗯,我沒有說這是完全正確的搜索 - 這只是一個建議。不過這裏有一個提示:查找關於「單身人士」的信息。事實上,我很驚訝你還沒有五個答案建議使用單例。 – 2012-08-13 22:05:55

回答

1

您的新班級iAd單身人士確實沒有視圖;因此你不能從那裏訪問一個。

我會建議,而不是將視圖控制器的視圖傳遞給iAd類,你有你的VC請求廣告。這樣的事情:

// SomeViewController 
// Maybe this is viewDidLoad? It's wherever you are ready to 
// incorporate the ad into your view. 
- (void) arrangeViewIncludingAds 
{ 
    // Do other setup 

    UIView * adView [[iAdSingleton sharedIAd] adWithParameters:infoToSelectAnAppropriateAdForThisVC]; 
    [self.view addSubview:adView]; 

    // Continue setup 
} 

我不確定是否要更改每個VC的廣告;我只是補充說這是一個想法。

+0

謝謝你的工作很棒!將接受 – 2012-08-13 23:09:38

1

你試圖分享什麼?從描述中,您聽起來像您最喜歡重用實現(而不是各種全局數據/狀態)。您可以爲此使用一個類的多個實例。當然,您可能需要關注此類的接口,以便它與您必須使用的視圖和控制器良好地交互(以通用方式 - 特殊情況應保留在適當的控制器中)。

+1

這是一個很好的觀點。我只是建議「單身」給亞歷克斯一個出發點。 – 2012-08-13 22:59:18

+0

@ W'rkncacnter謝謝! – justin 2012-08-13 23:00:10

+1

謝謝賈斯汀。我會接受,但@ W'rkncacnter已經提供了我從帖子開始的反饋意見,但我很感謝您的輸入 – 2012-08-13 23:10:18

相關問題