2011-01-16 5 views
1

はいつも私が誤って作成するには、次のパターンを与える:防止誤ったプロパティの割り当て

代わりにする必要があります
- (void) myFunc:(id)prop { 
    self.property = property; 
} 

- (void) myFunc:(id)prop { 
    self.property = prop; 
} 

これは常に私のプログラムは静かになり新しい値 'prop'に設定されるのではなく、既存の値にプロパティがリセットされるためにブレークします。コンパイルは、パラメータがインスタンス変数の可視性をマスクすると不平を言うので、私はパラメータ 'prop'を 'property'に指定できません。

このような状況を回避する良い方法はありますか?コンパイラの警告はありません。 xcodeでこれを防ぐ方法がありますか?基本的なインスタンス変数の値にプロパティを設定する状況は非常に多くありませんが(KVOバインディングをトリガーすることは可能でしょうか?)、大部分のケースでそれをやっているとは思えません。

私は上記のコードが合成されていることを理解していますが、@ synthesesizeで行う必要がありますが、私は単純な例として使用しています。

+2

あなたが投票した理由をよくわかりません。完璧に有効な質問。スタティックアナライザがこれをキャッチしなければならないので少なくとも、バグreport.apple.comを介して強化要求を提出してください。 – bbum

+0

プロパティを自分自身に設定しようとするたびにログに記録するセッターを編集するのはどうですか?もちろん、この機能をチェックするだけでは不都合かもしれません。 – blindjesse

+0

あなたの例で書かれている機能は完全に冗長です。それ自体がセッターとゲッターメソッドであるため、プロパティを直接使用してください。 – JeremyP

答えて

0

多くの人は、インスタンス変数の先頭にアンダースコアを付けることを選択します。これにより、パラメータの名前をpropertyにすることができます。間違ってアンダースコアを入力する可能性は低いです。

または、パラメータの名前をnewPropertyとすると、混乱しにくいほど異なる場合があります。

+0

これは答えになるとは思っていませんでしたが、それは推測です! – ghempton

+0

申し訳ありません!私はそれも好きではない。 :) – andyvn22

関連する問題