我已經閱讀了大量有關Objective-C代表的文章和閱讀材料,試圖理解它們。來自Java,他們看起來非常像Java聽衆。例如,假設我在Java中有一個按鈕。當按下按鈕時,我想要發生一些事情。我的代碼可能看起來像這樣:Objective-C代表與Java聽衆
ButtonListener myButtonListener = new ButtonListener();
someButton.addActionListener(myButtonListener);
...
class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
}
}
類似的東西。在objective-c中,我似乎會按照爲我的按鈕調用setDelegate方法並將其作爲委託傳遞給「偵聽器」的方式來執行某些操作。然後,實際的按鈕類可能會檢查該委託是否響應某個選擇器(即actionPerformed)。如果我以正確的方式思考這個問題,那麼代表就像聽衆一樣。那是對的嗎?有什麼重大分歧嗎?
謝謝!
從技術上講,使用塊可以使內聯代表。我在我的硬盤上有一個實用程序類... – 2011-05-23 20:57:20
哦,真的,我一直在尋找類似的東西,我正在努力避免爲一個代理函數創建一個全新的類。我很想看看你是如何做到這一點的 – 2011-05-23 20:58:41
你在這裏:標題:http://pastebin.com/Gdg4nsAF主:http://pastebin.com/SGVGCB31。您需要爲每個代表創建一個班級,但是當您需要很多班級時,這有助於減少班級數量。 – 2011-05-23 21:03:45