カプセル化されたgetterメソッドとsetterメソッドのプロパティの種類がわかります。したがって、私たちが myObject.property1と言うときは、実際には[myObject property1]を呼び出すことになります。 Appleのドキュメント、スタンフォードのiOSコース、サンプルコードから、プロパティの使用が推奨されています。私はプロパティを使用すると、コードをより良く見えるようにすることができますが、パフォーマンスはどうですか?私は巨大なアプリケーションを書く場合、プロパティを使用してパフォーマンスにnoticableimpactを持っていますか?専門家は、一般に直接セッターやゲッターのメソッドやプロパティを好むのですか?iOS - getter/setterメソッドを直接またはプロパティで使用する方が良いですか?
答えて
ブラケット表記([myObject property1]
)または.
表記(myObject.property1
)を使用すると、パフォーマンスに違いはありません。
これは他のどのコーディングスタイルよりも優れているので、あなただけの人ではない場合は、快適な表記法やチームと同じ表記法を使用してください。
2つのスタイルの間にパフォーマンスの違いはないと言います。私は不動産を愛している。そして最近のXCodeバージョンでは、XCodeがコードの半分を共有するので、それらを使うのは本当に簡単です。しかし、それが少しでも変わっていないのはちょっと変わっています。最初にそれらのプロパティをgetter/setterメソッドに変換しなければならないので、時間がかかりません。または、この翻訳はコンパイル時にお願いしますか?それがそうならば、それはうんざりです。 –
それらは同じものにコンパイルされるので、パフォーマンスの違いはありません。 – sch
プロパティは、彼らが自動的にあなたのためのメソッドを生成するので、おそらく優れているとあなたがそれらを合成するときには、このようにそれを行うことができます。
@synthesize property = _property
は、任意の混乱も
を回避するために、さまざまな機能を選択することができます/以下のようなメソッド:
(nonatomic, retain) // or (readonly) etc.
また、メモリ、より良い扱い
でも、同じクラスのたくさんのプロパティがある場合は、戻りメソッドを作成する可能性もあります。 – MCKapur
プロパティは間違いなく推奨されます。ところで、ゲッターとセッターを自動的に生成するのは@synthesize
です。セッター/ゲッターのパフォーマンスの変化を裏付けるものは、私には知られていません。
間違っています。重要な問題はパフォーマンスです。他のすべての発言は周辺である。私はその問題に取り組んでいます。 – Mundi
プロパティ構文は、getter/setter呼び出しに直接変換されます。私はをコンパイルするのに時間がかかりますか、または違いがある場合は、プログラムが実行されているときにコード実行が同じであることを知りません。
宣言されたプロパティを使用すると、ゲッターとセッターがコンパイル時に生成されるので、ゲッターとセッターを自分で宣言するのと比べてパフォーマンスには何の影響もありません。
- 1. HTMLページバックボーンとアンダースコアで_.templateメソッドを直接使用する方法
- 2. LINQまたはより良い方法で直接データテーブルをエクスポートする
- 3. PHPをローカルまたはサーバー上で直接コーディングする方が良いですか?
- 4. プロパティを直接使用するのではなく、JavaFXプロパティsetterとgetterを使用する場合は、
- 5. 拡張メソッドの使用が良い方法ですか?
- 6. Android用Sencha Touchまたはphonegapを使用する方が良いですか?
- 7. GR32でTFloatPointまたはTFixedPointを使用する方が良いですか?
- 8. プロパティは直接HTMLでクローム
- 9. 自動リリースまたは直後にリリースする方が良いですか?
- 10. AndroidまたはiOS Simlatorで直接dev urlを実行する方法
- 11. MediaPlayerのsetDataSource、パスまたはFileDescriptorを使用する方が良いですか?
- 12. ロギングにMSMQまたはWebサービスを使用する方が良いですか?
- 13. AFNetworkingまたはASIHTTPを使用する方が良いですか?
- 14. class.isEnum()またはinstanceof Enumを使用する方が良いですか?
- 15. HttpContext.Current.IsDebuggingEnabledまたは#if DEBUGを使用する方が良いですか?
- 16. Grails:GORMをsrc/javaから直接使用する最良の方法は何ですか?
- 17. どのアプローチが良いですか:Process.StartまたはDLLを直接呼び出しますか?
- 18. MooTools:responseTextを直接使用する方法
- 19. iPhone 4またはiOS 5でWi-Fiを直接ご利用いただけますか?
- 20. Model(MVC)から直接HTMLをフェッチするのは良い考えですか?
- 21. 何が良いですか?静的メソッドまたはインスタンスメソッド
- 22. ScalaSignatureを直接使用する必要がありますか?
- 23. デリゲートのメソッドをボタンから直接呼び出すことは良いことですか?
- 24. ルビーでインスタンス変数を直接使用するのは悪いフォームですか?
- 25. iOSアプリを直接ダウンロードする方法はありますか(アプリストアを使用せずに)
- 26. タイプをチェックするときは、 "as"または "as"でヌルチェックを使用する方が良いですか?
- 27. ハードウェアと直接通信するためにbashを使用できますか?
- 28. 使用する方が良い:in_arrayまたはarray_unique?
- 29. ドメインモデルオブジェクトでlog4netを直接使用する必要がありますか?
私の質問は明らかです:ドット表記(myObject.property1)と直接getter/setter([myObject property1])の呼び出しのパフォーマンスに違いはありますか? @synthesizeに関連するものではありません。 –