私はobjective-cが新しく、インスタンス変数とアクセサを持つフレームワークの標準クラスを拡張する必要があります。私はこれがいわゆる "カテゴリ"で行われていると聞きましたが、これはかなり混乱しています。これは基本的にどのように機能しますか?カテゴリはどのように機能しますか?
5
A
答えて
10
カテゴリは、クラス内のメソッドのテーブルにメソッドを追加します。既存のフレームワーククラスにアプリケーション固有のメソッドを追加するのは非常に便利です。
インスタンス変数をクラスに追加する必要がある場合、カテゴリはジョブを実行しません。カテゴリにはデータだけでなくメソッドが追加されます。インスタンス変数を追加するには、サブクラス化する必要があります。
7
クラスのカテゴリは、そのクラスにメソッドを追加します。インスタンス変数を追加することはできません。
インスタンス変数を追加する必要がある場合は、代わりにサブクラス化することができます。
+3
インスタンス変数を追加する必要がある場合は、関連付けられたオブジェクトを使用できます。 –
関連する問題
- 1. logstash kv {}機能はどのように機能しますか?
- 2. WatchKit:ディクテーション機能はどのように機能しますか?
- 3. 機能はどのように機能しますか?
- 4. $ watchのコール機能は一度にどのように機能しますか?
- 5. array_udiff()、array_uintersect()などはどのように機能しますか?
- 6. OpenLayers.Control.Scale.template - それはどのように機能し、全く機能しますか?
- 7. マップ機能はReact.jsではどのように機能しますか?
- 8. Schemeではコレクタ機能はどのように機能しますか?
- 9. dropbox.comの複数のファイルアップロード機能はどのように機能しますか?
- 10. JQueryのdatepickerのポップアップ機能はどのように機能しますか?
- 11. この機能割り当てはどのように機能しますか?
- 12. セッターテンプレートのライブライブテンプレート機能はどのように機能しますか?
- 13. Facebookのリンク機能はどのように機能しますか?
- 14. このソート機能はどのように機能しますか?
- 15. Solrのスケール機能はどのように機能しますか?
- 16. この単語置換機能はどのように機能しますか?
- 17. この機能はどのように機能しますか? char * getname(); C++
- 18. ソケットioの発光機能はどのように機能しますか?
- 19. 豚の置換機能はどのように機能しますか?
- 20. Readerモナドの「質問」機能はどのように機能しますか?
- 21. 機能の削減はどのように機能しますか?
- 22. jqueryのshow/hide機能はどのように機能しますか?
- 23. Pythonの "all"機能はどのように機能しますか?
- 24. このトランスポーズ機能はどのように機能しますか?
- 25. Aureliaの機能とルーティングはどのように機能しますか?
- 26. Safariのリーダー機能はどのように機能しますか?
- 27. JavaScriptのパワー機能はどのように機能しますか?
- 28. Kotlinの拡張機能はどのように機能しますか?
- 29. <*>の機能はどのように機能しますか?
- 30. 参照渡しはどのように機能しますか?
[Associated Objects](http://nshipster.com/associated-objects/)でカテゴリに変数を追加することができます。 –