1

私が使用する場合、私はそれを知っています

@interface TPN : UIViewController{

    IBOutlet UIView *testView;
}

@property (strong, nonatomic) IBOutlet UIView *testView;

最初のものは本質的に、クラス内でのみアクセスされるプライベート変数であることを知っています。2 番目の "@property" は、インスタンス化されたオブジェクトからアクセスできます。ほとんどのチュートリアルで、通常はクラス自体からアウトレットを変更するときにプロパティを設定する傾向があるのは奇妙だと思います。私が従うべきガイドラインはありますか?

4

2 に答える 2

0

あなたが正しいです。クラス内でのみインスタンス変数を使用する場合は、プロパティにする必要はありません。プロパティとは、単純に getter/setter のペアを意味します。取得/設定時に特別なことをする必要がない場合は、インスタンス変数を直接使用できます。

ARC が登場する前は、どこでもプロパティを使用することには副次的な利点がありました。オブジェクト ポインタのメモリ管理が簡単だったという点です。プロパティは、retain設定時に自動的に解放および保持されるため、自分でそのコードを入力する必要はありません。インスタンス変数を直接処理する必要があります。ただし、ARC では、強力なインスタンス変数の場合、代入時にコンパイラが代わりにそれを行います。したがって、この利点は今では無関係です。

人々がアウトレットにプロパティを使用する理由の多くは、ほとんどすべてのチュートリアルと例でその使用法が永続化されているためであると思われます (おそらく、メモリ管理を保持するという以前の利点による)。何か違います。

于 2013-07-12T18:39:10.287 に答える