ぶろぐ

日記です

でりげーと


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むかつくわ〜とか思っていたけど、書いててなんか整理できてきた。