首先,讓我們看看為什么要使用delegate。
一個典型的ios應用程序會有各種類型的對象:windows,tables,buttons,input boxes等等。在一個特定的應用程序中,你會讓每個對象做特定的事情。比如說當用戶點擊一個按鈕的時候,會執行一個特定的操作或者使用一個table顯示特定的數據。
每個對象實例會有處理特定的事情。比如說我們有一個UITableView的實例,我們可能會讓它以特定的方式來顯示特定的 數據,同樣的,我們對table的每一行進行tapping或者swiping操作的時候,它們也會做出自己特有的事件處理方式。為了避免為達到某一個特定的目的(actions or events)而創建一個子類(如果有多種不同的特定目的就會創建多個子類),你可以寫出響應這些操作或者事件的方法,它們會在這些操作或者事件發生的時候被調用,為了達到此目的,你只需要給這個對象一個delegate(一個對象)。你可以使一個類作為其他一個對象或者多個對象的delegate。
簡單的說代理就是在類外,讓特定的人對該類做特定的操作的一種實現方法。