私はスタンフォードCS193pコースの電卓デモで、IBOutlet接続がラベルからヘッダーファイルにドラッグされていることに気付きました。ただし、IBAction接続は.mファイルに直接作成されていました。私はドキュメントを読んでみると、Googleで検索しましたが、これの背後に理由が見つかりませんでした。IOS CS193p - なぜIBAction接続が.hにではなく.mファイルにドラッグされたのですか?
私は、IBActionのdigitPressedメソッドもヘッダーファイルで宣言する必要があると主張します(インターフェイスの一部ではない)。
私は明らかにObjective C(Javaで動作します)にかなり新しいので、何か基本的なものが欠けていると確信しています。
誰でも説明していただけますか?
.mファイルでIBOutletを宣言し、IBでそれらをリンクすることはかなり新しいです。デモやチュートリアルはすべてに追いついたわけではありません。これは間違いなく優れた解決策であり、他のオブジェクトのIBOutlet(決して実行すべきではありません)の変更などの非常に悪い習慣を回避します。 –
@ダン、アウトレットや行動を公開する必要がない理由を説明できますか?これらが公開されていない場合、Viewはどのようにコントローラにアクセスしますか? – Rahul
MVCで教育されている場合、ViewControllerは混乱する名前になります。それはあなたが考えているように、頭字語の2つの同輩のペアリングではありません。それをビューをコントロールするものと考える方が良いです。その意味では、自分の視点を非公開にする方が意味があります。これはルールでもコースでもなく、一般的な方法です。 ViewはView Controllerのプロパティであり、作成するサブクラスにはコントロールする追加のサブビューがあることがよくあります。そのコントロールは、他のコントロールとコントロールを共有しないという点で、通常はかなり絶対的です。私は良いリファレンスのために少し私にGoogleをさせて、私はここに投稿します。 – danh