忍者ブログ
2024 / 09
≪ 2024 / 081 2 3 4 5 6 78 9 10 11 12 13 1415 16 17 18 19 20 2122 23 24 25 26 27 2829 30 2024 / 10 ≫

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



- (IBAction) XXXX(メソッド名): (id) sender;

で、この : (id) sender ってナニモノかしら?と。


順番に考えていきましょうか。

- (IBAction) XXXX(メソッド名)ってのは、この辺でもお話ししたように、
開発基礎トレ2:アウトレットとアクションの使い方

・アクションは、【部品】→【プログラム】へ情報を伝える配線
でした。

View上(画面上)でボタンやテキストフィールドなどの部品がタッチされたら、
アクションを通じてプログラムが実行されるわけです。

で、このとき。

ボタンをタッチしたらルーレットが回る。
このようなアクションであれば、
「タッチされたかどうか」が問題なのでボタンの情報は必要ありませんね。

でも

画像をタッチしたらその画像の名前をラベルに表示したい。
このようなアクションの場合、
「タッチされた」後に、「何の画像がタッチされたの?」のような、
タッチされた部品の情報、つまり、引数が欲しくなるわけです。

ということで。
: (id) sender は、引数なんです。

(id) は引数の型のことで、
Objective-Cのオブジェクトなら何でもOK型を意味しています。

(UITextField *) みたいに書く代わりに (id) と書けるんです。

便利なんですけど何でもアリになってしまうので、
セキュリティ上と自分の中での整理上好ましく無い場合は、
きちんとしたクラス名を書くこともできます。

で、sender は引数の名前です。
お作法なのでこう書いておけばOKです。

アクションに接続されている部品(オブジェクト)が
丸ごとポーンと引数で渡されます。

先ほどの例で言うと、
画像の名前とか、サイズとか、そんなチマチマした項目単位で渡すんじゃなくて、
丸ごと1匹。後は勝手に捌いてくれ。

そんなオットコマエな渡し方が : (id) sender です。


ご質問のお答え的には

Q:
:(id)sender はあってもなくても良いものなんでしょうか?

A:
部品情報が要らないなら不要。部品情報が欲しいなら必要。

ということでいかがでしょう!

情報元:
3e20312f.pngblog:サルにでもできるiPhoneアプリの作り方


PR


この記事へコメントする








絵文字:
Vodafone絵文字 i-mode絵文字 Ezweb絵文字








08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
HN:
cow

自己紹介:
iPhone購入がきっかけでiPhoneアプリの制作にチャレンジ!