goo blog サービス終了のお知らせ 

Psalm

プログラマ向け技術メモ

セレクタ

2012-04-13 16:45:10 | Objective-C
Objective-Cの疑問、もう一つ。
この例↓で

[myRectangle setOriginX: 30.0 y: 50.0];

こう↓書かないのは何故?

[myRectangle setOriginX x: 30.0 y: 50.0];

複数のパラメータを適切に扱っていない例として

[myRectangle setOrigin:30.0 :50.0];

が例示されてたけど、メソッド名にパラメータが組み込まれていないから
ラベル付けされないって書いてあった。
メソッド名にパラメータが含まれてるから第一引数には
ラベルがついてないのか?
じゃあ、引数とメソッド名が何の関係もないときは
第一引数にもラベルをつけるのか?

Java使い的には半角スペースの位置も気持ち悪いし。
メッセージ式はまあ許すとしても、Java的にはこう書きたくなる。

[myRectangle setOrigin x:30.0 y:50.0];

ほら、すっきり落ち着く。
そういや、複数のパラメータを適切に扱っていない例↓

[myRectangle setOrigin:30.0 :50.0];

はどうして50.0の前に空白スペースがいらないのかしら。
分かんねーなー。
どっちかに統一しろよー。
こういう細かいところがイラっとくるわ。

もしかして空白スペースって特に必要ないのかなあ。
いや、いるよな。
少なくとも第一引数と第二引数の間にはいるだろ・・・
分かんねーなー。

Objective-C再開しました。

2012-04-11 07:35:16 | Objective-C
ぶっちゃけ前回学んだことなんか忘れてるので
初心者に逆戻りで一からです。
Java脳の持ち主です。
Cなんか見ただけで鳥肌が立ちます。
C++とか聞いたら鼻で笑います。
とりあえず、ぶちまけていい?

あのさあ、宣言と実装を分けることの合理性を
誰か説明してくれない?
なんの意味があって、同じこと2回も書かなきゃいけないの?
コンパイルの都合なの?
機械に楽に作業させるために人間が苦しむの?
バカじゃないの?
プログラミング言語なんて人間が楽するために
作られてるのに本末転倒じゃないの?
もーね、どうしても我慢できないのよね!
ヘッダファイルってやつ!
あー、ムカツク。

よし、吐き出したらすっきりしたから次に進もう。
いやあ、でも細かいところがツライなあ。
文字列リテラルの@とか絶対忘れる自信ある。
ざっくり読んだ感じではセレクタが一番苦戦しそう。
どういうときに使うのか想像できないわー。

動かしながらソース読むのが一番なんだけど
如何せん、Macがないのよね。
ここ、かなり重要なところなのにね。
え、なんでMacないのにObjective-Cなんてやってるのかって?
しゅーみーでーすー。





前のObjective-C関連の記事読んだら同じ愚痴こぼしてた。
前進してないぞー・・・

むつかしい。

2010-09-02 17:29:42 | Objective-C
Objective-Cでインスタンス変数を宣言する時に、
型がクラスオブジェクト型の場合は、
変数名の頭にアスタリスクを付ける。

へーへーへー。
クラス型はかならずポインタで持つってことか。
まあ、メモリ圧迫するから当たり前だけど
じゃあ、ポインタじゃない変数って何のためにいるのだ?
全部ポインタでいいんじゃね?
うーん、うーん。

以前もObjective-Cでの開発をしようとして、挫折したんだけど
というか、挫折する人多いと思うんだけど
原因は言語仕様にX CODEの特有のコードが入り込むことだろう。
便利なのはいいんだけどさあ、もう最初は全部自分で制御した方が
いいよね。
なんだよ、アウトレットって!
インスペクターって!
線をつなぐとか意味わかんねーよー。

と泣き言。

ふぁいとー。
おー。

Objective-C始めました。

2010-08-20 13:15:55 | Objective-C
今更感たっぷりですが、いい加減逃げてても仕方ないので
始めることにしました。
が。
C系の言語って嫌いなんですよね!
なんか、こうスマートじゃないって言うか。
なんで宣言と実装を別ファイルに書かなきゃいけないの?
ファイル数ばっかり増えるし、管理し難いし。
ぶつぶつ・・・

特に以下の部分は激しく異論を唱えたい。
セッターは

- (void)setMyProp:(int)value {
myProp = value;
}

なのに、ゲッターは

- (int)myProp {
return myProp;
}

これってどうなの?
そもそもメソッド名って動詞+名詞でつけるべきじゃないの?
myPropじゃ、何をするか分からないじゃん。
getMyPropと書くのが作法じゃないの?
少なくともJava的常識ではそうなんだけど。

読み進めたら(@ITより)
「ゲッターメソッドは、多くの言語では「getMyProp」のように、
プロパティ名の前にgetを付加する形式でネーミングされますが、
Objective-Cでは、通常はプロパティ名と同じになります。」
だって。
ええー!?
そこにはどのような意図があるのですか?
この方が良いと思ってるのですか?

わーかーらーんー。