忍者ブログ
2025 / 01
≪ 2024 / 12 1 2 3 45 6 7 8 9 10 1112 13 14 15 16 17 1819 20 21 22 23 24 2526 27 28 29 30 31 2025 / 02 ≫

×

[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絵文字








12 2025/01 02
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 31
HN:
cow

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