教会式派だったんですが、神前式もいいですね

推しが結婚しました(語弊しかない)。
職業柄警戒心が高く、誰一人として背後を許さなかった推しが。
どれほどの強敵を屠っても満たされることのない、戦闘への飽くなき欲を燻ぶらせていた推しが。
自身の暴力性を妄信し周囲から敬遠されている真正の悪人である推しが。
そのくせ「英雄」という他者軸の評価でしか自身の価値を見出せない、自らの首を絞める不器用な生き方しかできない推しが。
一方的な気持ち(嫉妬、憎悪、そして欠片ほどの憧憬)を相手に押し付け過剰に執着していた推しが。
今日もにこやかに戦闘狂、二人だけの世界ですね。ありがとう。一生仲良く喧嘩()してください。
生きているだけで素晴らしいです。存分に人生を謳歌してほしい。

推し(戦闘狂)が好きぴ(滅したい相手)といっしょ(死闘)でうれちいな(私が)の映像です。誰が何と言おうと歪曲汚タク的にこれは結婚です。

推しもアラサー(享年32)、、、そりゃ人生の新しいステージにも進むか、、、とひとしきり感動し。
自身を振り返ると恋人もおらず楽しい清貧独身生活を送っていますが、それはそれ、これはこれですね。生活レベルに多少不満はあれどそれはパートナーの有無とは関連しないので。
運営君への課金ご祝儀も弾んでしまいましたので、向こう三か月くらいはもやしと豆腐で生き延びて見せます。劣悪な環境でも自身の鍛錬を怠らず強さを追い求め続ける推しのように。


あまりにも熱が滾ってしまいましたが、本題はここからなんですよね。
少し前から業務でObjective-Cを触っていまして。数年前に少しだけ携わったときも同じようなところで躓いたな~というのを思い出したので、メモしておこうというやつです。

delegate(デリゲート)

初歩的なこと…というか、ほぼこちら(素晴らしい先人の知識)で解決すると思います。しかしながらおポンチなわたくし、「処理を他人任せにするのがdelegateのは嫌ほど分かったって……そんなざっくりした意味とか定義とかを知りたいんじゃなくてさ……アホでもわかる書き方を知りたいんだよォ!!!ウホウホ!!!!!」と暴れておりました。
プログラミング初心者の脳筋勢は共感しあおうね。ということで下記に自分の言葉に変換しただけの備忘録を置いておきます。

delegateする側とは:「後の処理頼むでェ……(肩ポン)」と通知を送る側、実際には仕事してない側。
子分の名前なんて知ったこっちゃないので、誰が何してるかはよくわからないけど指示を出せる。すごい。

  • ヘッダファイルにプロトコル句を用意する。大体hogehogeDelegateとかそんな名前。
    アホでもわかるようにちゃんと名前にデリゲートが入っている、えらい。
  • プロトコル句の中にはデリゲートメソッドを書く。これは「おい、焼きそばパン買ってこい」的なことを書いとく。実際に仕事するのは子分なので「どこの食堂まで行く」だの「千円札で購入」だの具体的な処理を書くことはない。インターフェースっぽいが一番それっぽいんだけども。
  • プロパティにデリゲートのインスタンスを用意する。急に難しいこと言うなよ…。
    こいつは通知する先(パシリ君)は誰やねんというのを保持する。後々このオブジェクトには通知先のインスタンスが入ることになるぞ!
  • 実装ファイル(.mのほう)で、処理を任せる場面が来たらデリゲートメソッドの呼び出しを書こう!

delegateされる側とは:ちゃんと働くほう。子分。

  • 実装ファイルの初っ端に「プロトコルに準拠するで!」を書く。
    「はい!先輩の言うとおりにするッス!」のボスの名前を書いておく。hogehogeDelegateくんのことやな!
  • 通知元がインスタンス化したときに、そのデリゲートインスタンスに自分自身をセットする。
    delegateする側で用意しておいたプロパティに自分をセットすることで、自身が舎弟であることを示している。(そんなことはない)
  • 実際の処理を書く。メソッド名はdelegateする側で定義しているので、指示が飛んできたときに実際に行う処理のこと。焼きそばパンを買いに別校舎の食堂まで走ること。

未来の自分が多少救われますように。おしまい。