3

メンテナンスプロジェクトに取り組んでいると、多くの厄介なコードに苦労しています。現在の割り当てでは、前の開発者がクラスのすべてのiVarおよびIBOutletのプロパティを定義(および合成)していることがわかりました。

私の理解によると、私はそのクラスの外で使用することを意図した変数のみを適切に宣言するために使用されました。そして、ほとんどの場合、IBOutletのプロパティを宣言する(そしてもちろん合成する)必要はありません。

「プロパティを宣言して合成する必要がある(または不可欠な)場合」に関する回答またはドキュメントを入手できますか?

編集:

カメレオン博士が指摘した投稿を読んだ後、別の質問が思い浮かびます。コードにどのような抜け穴がある可能性がありますか。すべてのiVarをプロパティとして宣言し、それらを合成するとどうなりますか?私はそのように行くことができますか?

4

2 に答える 2

1

プロパティをいつ使用するか、いつivarを使用するかについてはそのような規則はありません。両方を使用することには独自の利点があります-

ivarの使用-

  1. ivarを使用すると、パフォーマンスがわずかに向上します。
  2. ユーザーは、参照カウントによって手動でメモリ管理を行う必要があります

プロパティの使用-

  1. これにより、KVOコンプライアンスコードが保証されます。
  2. プロパティを使用することにより、メモリ管理はアクセサによって行われます。

詳細については、次のトピックをチェックアウトできます-http://cocoawithlove.com/2010/03/dynamic-ivars-solving-fragile-base.html

私の意見では、プロパティはivarよりも多くの利点があるため、常にプロパティを使用することを好みます。

于 2012-04-12T06:46:17.113 に答える
1

一般的に、1つか2つの余分なプロパティを持つことはそれほど悪いことだと主張するのは難しいと思います。そうは言っても、たくさんのプロパティや変数を含めると、物事が乱雑になり、コードを理解して維持するのが難しくなる可能性があります。また、ビュー内のすべてのフラズマボブにIBOutletは必要ありません。したがって、脂肪を少しトリミングしたい場合は、実行時に操作する必要のないものをすべて削除してください。単純に聞こえますが、変数/プロパティを含める唯一の理由は、実行時に使用することを想定している場合です。

プロパティを外の世界に提示することに関しては、その通りです。提示する必要がないときに物を隠すことは、オブジェクト指向プログラミングの主要な概念です。あなたがチームの一員であり、他の人があなたのデータをいじくり回したくない場合、これは非常に重要です。ですから、それを実行してください。そのコードをクリーンアップして、自分自身や他の人の生活を楽にしてください。

于 2012-04-12T06:46:36.927 に答える