首先必須說:
很多人會把這兩個東西搞混,保括我在剛學 iOS 開發的時候都常常誤解這兩個之間的差異。
我們常常會把兩者和在一起使用,讓他們彼此能發揮最大的效益,比如說利用 Delegate 和 Protocol 讓兩個不同的 ViewController 可以傳遞訊息 (訊息可以暫時想成 value 就好
這個時候該如何去使用,我主要會分成三個大方向
(1). 宣告一個 Protocol 並定義裡面的方法,並宣告一個屬性,型別遵循該 Protocol 。
(2). 利用 vc.delegate 執行該方法,且需要讓 VC 的 delegate 彼此認識認識
(3). 遵守該 Protocol 並實現該方法
實務上如果要傳遞的屬性不多,可以使用 closure 取代,甚至可以使用 Reference 直接取值就好~