3

iOS SDK 6.1 が Xcode 4.6.3 で使用されている場合IBAction、ヘッダー ファイルでメソッド シグネチャを宣言するかどうかに違いはありますか?

メソッド宣言をヘッダー ファイルに入れなくても、アプリは問題なくコンパイルおよび実行できます。ただし、このメソッドはストーリーボードには表示されません。

ヘッダー ファイルでメソッドを宣言しないという隠れた問題はありますか? メモリ消費の違いはありますか?

4

3 に答える 3

1

.hストーリーボード/interfazビルダーで接続したい場合、または他のクラスが呼び出すために公開したい場合にのみ、ファイルで宣言してください。

プライベートにしてクラス内でのみ使用する場合は、ヘッダー ファイルで宣言する必要はありません。

メモリやパフォーマンスの違いはありません。

于 2013-07-25T08:03:36.200 に答える
1

IBActionメソッドの全体的なポイントは、Interface Builder でパブリック接続ポイントになることです (ストーリーボードを使用するかどうかに関係なく)。

単語IBAction自体は#defined asvoidです。その唯一の目的 (および同じことが にも当てはまりますIBOutlet) は、Xcode がコードをスキャンし、コントローラーを IB 経由でビューに接続する必要があるこれらのポイントを見つけられるようにすることです。IBActionコントロールをそのメソッドにプログラムで接続している場合、宣言の一部は必要ありません。

パフォーマンスの違いはありませんが、意味的にIBActionは、実装ファイルに を入れても意味がありません。コントローラーがそのメソッドを介して外部オブジェクトと通信する手段を持つことIBActionは、まさにヘッダー/パブリック@interface宣言の目的です。

于 2013-07-25T08:10:24.637 に答える