0

これはおそらく本当に初心者の質問ですが、私が使用している本 (iOS プログラミングの学習) ではそれについて十分に説明されていないため、ここで質問しています。

UITextFieldn をビューにドラッグすると、そこからヘッダー ファイルに ctrl クリックして、テキスト フィールド (たとえば、textField1) のインスタンスを宣言し、後で合成 (.m ファイル) できることがわかります。

.h を手動で入力してから、UITextField を textField1 という名前の UITexField の参照アウトレットとして接続することもできます。

テキストやフォントなどをプログラムで変更したいので、接続が必要なので、これは理にかなっています。

これが、ヘッダー ファイルでオブジェクトを宣言する唯一の理由ですか?

Gesture Recognizer の使用方法に関するビデオを見てきましたが、.h で誰もそれらを宣言していないようです。それは、インターフェース ビルダーのみを介してそれらを縮小しているからですか?

これに関するルールについて少し情報が欲しいです。

編集:私の質問は、(.m ではなく) .h ファイルでデカールを作成する必要があるかどうかではないと思いますが、インターフェイスの外で使用しない場合、ジェスチャ認識エンジンをまったく宣言する必要があるのはなぜですか?ビルダー?

ありがとう

4

2 に答える 2

2

Objective-Cでのカプセル化の「理由と方法」について学ぶために、「Objective-C のプライベート プロパティ、メソッド、ivar」に関するこの短いが効果的な記事を読むことをお勧めします。

さらに、Xcode User Guideを見ると、必ずしもヘッダー ファイルでアウトレットを宣言する必要はなく、実装 (.m) ファイルで宣言することもできると記載されています。そうすることで、アウトレットを公開しないという利点が得られます。これは、これらのチュートリアルのジェスチャ認識エンジンが実装ファイル内で宣言されたのと同じ意図であると思います。

于 2013-06-30T15:04:57.793 に答える
0

.h と .m でアウトレットを宣言することの唯一の違いは、View Controller を使用する他のクラスの可視性です。

あなたが自問したい質問は、その特定のView Controllerの外にいる誰かがあなたのビューの存在を知っているべきかどうかです。すべてのインスタンス変数を .m ファイル内で定義し、必要な場合にのみ .h ファイルに移動することをお勧めします (移動する前に、それが適切な設計上の決定であるかどうかをもう一度考えてください。一般的なシナリオでは、View Controller がすべてを処理する必要があります)。その見解自体)。

于 2013-06-30T14:41:04.550 に答える