Actionで作成したAPIについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Objective-Cかじり初め

Actionで作成したAPIについて

#1

投稿記事 by Objective-Cかじり初め » 12年前

初めまして。
最近macとiPhone5を購入してiPhoneアプリの勉強を始めたのですが、
疑問に思う所があるので質問させてください。

XCodeでSingle-Viewのプロジェクト(StoryBoardを使用する)を作成し、
buttonをStoryBoardに配置します(この表現で伝わりますでしょうか?)。

で、Ctrlを押しながらそのbuttonを.hファイルにドラックし、Actionを作成します。
すると.mファイルには以下のメソッドが追加されます(もちろん.hにも追加されます)。

コード:

- (IBAction)pushButton:(id)sender
{
}
ここで質問が2つあります。
1. return文がないのにエラーもでらず、普通に動作しています。
  これはなぜでしょうか?

2. id型のsenderが引数として渡されています。
  今回は例としてbuttonを押した時のActionでしたが、
  セグメントコントロールやスライドバーの時も同じ引数でした。
  Actionを作成すると必ず同じメソッドが定義され、
  そのオブジェクト(と書いてよいのでしょうか?)が
  id型として渡されてくるということでしょうか?

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前
住所: 東京
連絡を取る:

Re: Actionで作成したAPIについて

#2

投稿記事 by h2so5 » 12年前

Objective-Cかじり初め さんが書きました: 1. return文がないのにエラーもでらず、普通に動作しています。
  これはなぜでしょうか?
UINibDeclarations.h の中身を見れば分かります。

コード:

#ifndef IBAction
#define IBAction void
#endif
https://developer.apple.com/library/ios ... rence.html
Objective-Cかじり初め さんが書きました: 2. id型のsenderが引数として渡されています。
  今回は例としてbuttonを押した時のActionでしたが、
  セグメントコントロールやスライドバーの時も同じ引数でした。
  Actionを作成すると必ず同じメソッドが定義され、
  そのオブジェクト(と書いてよいのでしょうか?)が
  id型として渡されてくるということでしょうか?
そうです。
idはオブジェクト汎用型なので、どのようなオブジェクトでも受け取ることができます。

Objective-Cかじり初め

Re: Actionで作成したAPIについて

#3

投稿記事 by Objective-Cかじり初め » 12年前

h2so5 さんが書きました: UINibDeclarations.h の中身を見れば分かります。

コード:

#ifndef IBAction
#define IBAction void
#endif
IBAction型はvoid型だったんですね。
納得です。
h2so5 さんが書きました: そうです。
idはオブジェクト汎用型なので、どのようなオブジェクトでも受け取ることができます。
ありがとうございます。
そうだろうなとは思っていたのですが
答えが分からず、気になっていました。

これにて解決とさせていただきます。
ご教授ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る