きりかノート 3冊め

おあそびプログラミング

isEqual: 使ってる?

オブジェクト指向な言語では「等しい」という判定の方法が、対象のオブジェクトによって異なるというのが一般的で、Cocoa なら isEqual: メソッドがそれに該当する。[rubycocoa:0429] あたりのことから、Cocoa で isEqual: メソッドはどのくらい使われているか興味がわいたのでざっと調べてみよう。

ということで Google Code Search: 言語 Objective-C "isEqual:" で検索してみた。文字列の比較ばっかりだよ!今回知りたいのは文字列じゃなくって、一般的なオブジェクトのケースなのでこの結果はあまり参考にならない。

じゃあ、比較対象を sender に限定してみよう。これなら UI のオブジェクトだから、文字列ということはほとんどないでしょう。

思ったほど大差じゃなかったな。てか == も少ないなあ。

まあ sender になるようなオブジェクトなら tag つけとくのが Cocoa 的に正しいのかな。switch 使えるようになるし。ただ、IB で数値指定するのはイマイチだよな。 awakeFromNib で setTag: するなどコード側で初期化してやるのが順当かなあ。