
初めまして。objective-Cの初心者で、「self」についての質問です。
「selfとは、自分自身を表す変数である。」と、様々なWebサイトや参考書に書いてあるのですが、いまいちピンときません。
例えば、target:selfとか、hoge.delegate=selfだとか、self.title=@"hoge"のようにselfが前に付いたり、後ろに付いたり、”:”だったり”=”だったり”self.”もしくは”.self”だったりでselfが何をしているのかが全く分かりません。
例えば@implementationの中の”Hoge{”内にあるtarget:selfという文があっても、「Hogeをターゲットにして自分(self)を呼び出して、一体何をしているんだ?」と考え込んでしまいます。
一体selfとは何者なのか(隠し引数だとか自分自身だとか、言葉は分かってるのですが)どなたか、ピンとくる回答をお願いいたします。「このselfさえ分かればもう、つまづく事は無い!」「このselfさえ攻略してしまえば...!」というところが、今の気持ちです。「これさえ分かれば」なのです。どうぞよろしくおねがいいたします。

No.2ベストアンサー
- 回答日時:
オブジェクト指向という考え方は、プログラミングの中に現るものを「物」として扱い、それに対して、「メッセージ」を送ることで、処理を行おうという考え方です。
なので、基本は、「だれが」「だれに」「どのようなメッセージ(と、ついでに、パラメータ)」を送るか。
そして、メッセージの受け手は、「受けたメッセージに対してどういう反応を示すか」ということ。
たとえば、ドラマや芝居で、「この人物は、どのような言葉をかけられるとどう行動するか」ということを全部決めて、あとは、「スタート」と声をかけると、ドラマが勝手に進行する(処理が続行される)という考え方の上に成り立っているものです。
普通にドラマを作ろうとすると、始めから終わりまでシナリオを作らなければなりません。
それに対して、ある登場人物に対して、「誰それからこう言われたら、こういう反応をする」ということだけを決めるなら、一度に考えなければならないことが、少なくてすみます。だから、大きなシステムも比較的シンプルに構成できるだろうという発想です。
さて、「だれに」という要素が存在するのですが、メッセージというのは、自分以外の人に送ればそれですべてOKというものではありません。
「自分にメッセージを送ってください」と設定するとか(郵便.宛先 = 自分)
「自分のことを表明する」とか、(自分.名前 = 太郎)
まあ、そういう文脈で、「自分」ということがあちこち出てくるわけです。
そういう、「物(人も)」と「メッセージ」で成り立つ世界において、「彼」や「彼女」や「あなた」と同じように、「自分自身」を表すものです。
で、自分自身の行動には、いちいち「自分はどうする」といわないように、「自分」というのがなくても、動作は記述できるのですが、本来、他人に当てたメッセージや他人のことも設定できるような部分に、「(他の人じゃなくて)自分」というのを明示するのに、 self が使われたりするわけです。
No.3
- 回答日時:
ギャラのでない、ここで、ながながした説明する気にはなりませんが、まじめに、Objective-Cのテキスト読んだことあるんでしょうか。
よくあるのは、ネットにころがってある、いいかげんな説明をよんでわからん、とか言っていることですが。Appleのドキュメントは、基本、英語ですが、Objective-Cについての説明は、日本語でありますけど、これ、読みました?
No.1
- 回答日時:
>target:selfとか、hoge.delegate=selfだとか、self.title=@"hoge"のようにselfが前に付いたり、後ろに付いたり
前に付いたり後ろに付いたりの意味が判らないなら、ぶっちゃけ「基礎から勉強して来い」なんだけど。
>selfが何をしているのかが全く分かりません。
「何もしてない」が正解。
http://ja.wikipedia.org/wiki/This_(%E3%83%97%E3% …
に解説されてる「this」と同じだから、上記ページをよく読むこと。
上記ページを読んでも理解できないなら、objective-Cなどの「オブジェクト指向言語」は理解できないから、他の言語を習得するか、プログラミングは諦めた方が身の為。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ちゃんと覚えててくれてる! を...
-
昔の男最終回教えてください
-
仲良かった友達に急に距離を置...
-
公衆電話に電話をかけることは...
-
花より男子 道明寺司の父は?
-
「世界の中心で、愛をさけぶ」...
-
~より小さいは、「~以下」「...
-
男性に質問です。過去に抱いた...
-
ドラマ「一つ屋根の下」の「シ...
-
しばらく呼び出し音が鳴ってか...
-
ホテルウーマン(最終回)教え...
-
韓国ドラマ ホジュン 朝鮮王...
-
S.O.S最終回ストーリー教えてく...
-
熟語: 「次ページに続く」「前...
-
ODBCの接続に失敗しました(3...
-
VVF1.6と2.0の混合はまずい?
-
狩人・兄は逮捕されませんでし...
-
成田のロケ地
-
彼の運転が下手すぎてストレス...
-
SQLServer sqlcmdが使えない
おすすめ情報