プロが教えるわが家の防犯対策術!

Objective-Cのプログラム式について、お伺い致します。
iPhoneのアプリを作っているのですが,全く同じアプリでも若干式が違うのが理解できません。以下の意味を教えていただけると幸いです。
(1) - (void)calc
(2) - (void)awakeFromNib
(3) [self calc];
(4) float
(5) sender

A 回答 (2件)

1) プライベートメソッドでしょうか?apple のフレームワークでは見当たりませんでした。

クラスの設計者しかわからないのでは?

2) interface builderにてインスタンス化されているオブジェクトに対して、アプリケーション実行時、nibファイル読み込み完了した時点で送られるメッセージです。自分で設計したクラスにこのメソッドを記述しておき、interface builder でインスタンス化しておけば 起動時に awakeFromNib が呼ばれるので、起動時にしておきたい処理を - (void)awakeFromNib {} の{}内に記述しておけば実行されます。

3) [self calc]; を記述しているクラス自身に対して、calcメソッドを実行します。self は 自身を表します。

4)c言語の変数型です。他の型に関してもネットに情報が豊富にあります

5)大抵メッセージの送り主から送られるオブジェクトです。NSButton クラスのインスタンを押すと以下のメソッドが送信される場合、senderは押したボタンのオブジェクトになります
-(IBAction)buttonAction:(id)sender {
NSLog(@"sender %@",sender);
}
    • good
    • 0

Objective-Cの言語知識はどの程度おありなのでしょうか?


C言語の知識はどうでしょうか?

このような部分だけ切り出されても、正確なことは言えません。

(1),(2)
C言語で解釈すれば、「void型に型変換して、符号反転(だが、void型にマイナス演算はないのでエラー)」です。
が、おそらく、オブジェクトの宣言または定義の中でのインスタンスメソッドの宣言/定義だと思われます。
- (void)calc は「 戻り値がvoid(=なにも返さない)のメソッド calc」という意味です。

(3)
C言語で解釈すれば、配列の添字ですが、前に配列/ポインタが無く、[]の中も「式」になっていないので、エラーです。
が、おそらく、オブジェクトへのメッセージ送信です。
selfは特別なオブジェクトで、送信側のオブジェクト自身を示します。
おそらく、(1)で宣言されたオブジェクトの中で、(1)のcalcメソッドを呼びだすためのものと思われます。

(4)
浮動小数点(実数)のfloat型です。C言語の仕様にあるものです。double型に比べて有効桁数が小さいものです。
変数、関数とその引数の宣言、型変換等に使われます。予約語なので、それ以外のものに使用できないはずです。
その前後がないので、どんな使われ方かわかりません。

(5)
センダという概念があります。おそらく、センダを受け取るための引数か、センダそのものかです。
これも、前後が無いと正確なことはわかりません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!