0

本当に、ほとんどの人が self.something なしでコードが動作するのに、ほとんどすべてのものに self.something を使用するのはなぜでしょうか?

例えば:

-(void)viewDidLoad {

self.mylabel.text = [NSString stringWithFormat:@" %@", someVariable];

}

このコードは、self がなくても同じように機能します。

私は自己なしで何が起こるかを見ようとしましたが、それは常に機能します.

4

1 に答える 1

2

自己使用。ゲッター/セッターを使用していることを意味し、使用していないことは、インスタンス変数に直接アクセスしていることを意味します。

この質問はここで多く扱われてきましたが、要約すると:

すべてのデータ メンバーに対して常に @property を作成し、「self.name」を使用して、クラスの実装全体でそれにアクセスします。独自のインスタンス変数に直接アクセスしないでください。

プロパティはアクセス制限を適用します (読み取り専用など)

プロパティはメモリ管理ポリシーを適用します (強い、弱い)

プロパティは、カスタム セッターとゲッターを透過的に実装する機会を提供します。

カスタム セッターまたはゲッターを持つプロパティを使用して、スレッド セーフ戦略を適用できます。インスタンス変数にアクセスする方法が 1 つであると、コードの可読性が向上します。

ソース:

Obj-C のベスト プラクティス

于 2013-10-24T08:09:41.770 に答える