私はほとんどの部分でプロパティを理解していると思います。私の質問は、インスタンス変数のプロパティがあり、実装ファイルのメソッド内からそれを設定または取得している場合、使用する必要がありますself.myProperty
か、それとも単にmyProperty
ですか?どちらかが機能することは知っていますが、規則が混在していることもあります。コードが変数に直接アクセスする場合と、プロパティを介してアクセスする場合があります。
これを行う技術的な理由はありますか?それは単なる慣習/個人的な好みですか?また、メソッドのパラメーター名がインスタンス変数名と衝突するインスタンスについては言及していません。これは、プロパティを使用する理由の1つである可能性があります(少なくとも、他の言語では、これについてはわかりません)。実装内でプロパティを使用する場合、プロパティを宣言した方法(つまり、非アトミック、retain)を利用したいと思うので、たとえばメソッドでは、次のことができます。
self.myProperty = [someObject someAutoReleasedObject];
それ以外の:
myProperty = [[someObject someAutoReleasedObject] retain];
これが理由ですか?それで、プロパティを使用するのが良いと思われる特定の状況だけがありますか?
私はObjective-Cを初めて使用しますが、これは私が混乱している数少ないことの1つです。これまでのところ、インスタンス変数に直接アクセスしましたが、プロパティを通過すると実際にメソッド/メッセージが呼び出されて送信され、不要なオーバーヘッドが追加されるという誤った仮定があります。私はこれが間違っていると確信していますが、オーバーヘッドの違いがごくわずかであっても(あるとしても)、変数に直接アクセスできるのに、なぜそれを追加することを選択するのでしょうか?
私は自分の考えが間違っていると確信しているので、ここで質問しています。