iOS SDK 6.1 が Xcode 4.6.3 で使用されている場合IBAction
、ヘッダー ファイルでメソッド シグネチャを宣言するかどうかに違いはありますか?
メソッド宣言をヘッダー ファイルに入れなくても、アプリは問題なくコンパイルおよび実行できます。ただし、このメソッドはストーリーボードには表示されません。
ヘッダー ファイルでメソッドを宣言しないという隠れた問題はありますか? メモリ消費の違いはありますか?
iOS SDK 6.1 が Xcode 4.6.3 で使用されている場合IBAction
、ヘッダー ファイルでメソッド シグネチャを宣言するかどうかに違いはありますか?
メソッド宣言をヘッダー ファイルに入れなくても、アプリは問題なくコンパイルおよび実行できます。ただし、このメソッドはストーリーボードには表示されません。
ヘッダー ファイルでメソッドを宣言しないという隠れた問題はありますか? メモリ消費の違いはありますか?
.h
ストーリーボード/interfazビルダーで接続したい場合、または他のクラスが呼び出すために公開したい場合にのみ、ファイルで宣言してください。
プライベートにしてクラス内でのみ使用する場合は、ヘッダー ファイルで宣言する必要はありません。
メモリやパフォーマンスの違いはありません。
IBAction
メソッドの全体的なポイントは、Interface Builder でパブリック接続ポイントになることです (ストーリーボードを使用するかどうかに関係なく)。
単語IBAction
自体は#define
d asvoid
です。その唯一の目的 (および同じことが にも当てはまりますIBOutlet
) は、Xcode がコードをスキャンし、コントローラーを IB 経由でビューに接続する必要があるこれらのポイントを見つけられるようにすることです。IBAction
コントロールをそのメソッドにプログラムで接続している場合、宣言の一部は必要ありません。
パフォーマンスの違いはありませんが、意味的にIBAction
は、実装ファイルに を入れても意味がありません。コントローラーがそのメソッドを介して外部オブジェクトと通信する手段を持つことIBAction
は、まさにヘッダー/パブリック@interface
宣言の目的です。