でりげーと
Aさん⇔Bさんのデリゲート合戦が繰り広げられる…!と思ったけどそんなことはなかった。
普通、A親分がいて「仕事終ったら声かけろよ」とか言って、B子分に仕事を依頼して「A親分、作業終わりました(); with 成果物」というのが普通っすね。
[_delegate ↑親分! performSelector:@selector(receiveSucceed:) ↑作業終わりました、と声をかける! withObject:self]; ↑成果物はオレ持ってるっす。
なんつーかもっと効率良くプログラミングしたいっすね。ぬおーと思いながらObjective-C書いてるけどDelegateの意味ちょっとずつ分かってきてるから為になってる。
JavaのSwingってどうやるんだっけ?と思ったらListenerだ。JavaScriptはコールバック関数だ。JavaScriptは「関数オブジェクト」を渡せるからコールバック変数でOKなのかな。Javaだとオブジェクト指向で、「クラスがいてメソッドがいる」って関係だから「メソッドだけを渡す」という事ができないのでListenerって仕組みを使っているのかな?多分。(Javaも一応、無名クラスに関数を持たせてそれを呼んでもらうようにすれば、関数オブジェクト的なこと出来るけども。高階関数的な。)Objective-Cだとその仕組をDelegateでやってる、って感じなのかな…。
Delegateむかつくわ〜とか思っていたけど、書いててなんか整理できてきた。