SwiftでDelegateとProtocolの復習をしています。
現在Udemyで学んでいるのですが、そこではDelegateやProtocolは他のクラスの処理を簡単に呼び出せるものと教わりました。その理解で自分は、UITableViewDelegateなどのdelegateメソッド(didSelectRowAtやcellForRowAt)をUITableViewDelegateクラスから借りてきて使うためにProtocolが必要だという認識でいました。
しかし、自分でググってみて深く調べてみると(参照したページです→こちら)
どうやらDelegateとProtocolには委任元と委任先という概念があり、委任元でProtocolをインスタンス化し、そのProtocolのメソッドであるDelegateメソッドを委任元で実行する。実際の処理はProtocolを批准した別のクラスで決めるというような理解をしました。つまりメリットとして、あるクラス(Aクラス)では実装したくないような処理を他のクラス(Bクラス)に任せることができ、かつそのタイミングはAクラスが決めることができるという感じで理解をしました。(他にも変数の受け渡しなどのメリットがあることも理解しました)
上記の理解(主に太字)自作で作ったDelegate、ProtocolをUITablevieViewDelegateの機能をViewControllerを使う際に当てはめてみると,ViewControllerがBクラスになると思いました。しかしAクラスに当てはまるのがどこになるかがわかりません。
素人質問で恐縮ですが、ご回答お願いいたします
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。