2009-05-14 9 views
5

Ich bin neu in objective-c und muss eine Standardklasse eines Frameworks mit einer Instanzvariable plus Accessoren erweitern. Ich habe gehört, dass dies mit einer sogenannten "Kategorie" gemacht wird, was für mich ziemlich verwirrend klingt. Wie funktioniert das im Grunde?Wie funktioniert eine Kategorie?

Antwort

10

Eine Kategorie fügt der Tabelle von Methoden in einer Klasse Methoden hinzu. Es ist sehr praktisch, um anwendungsspezifische Methoden zu vorhandenen Framework-Klassen hinzuzufügen.

Wenn Sie einer Klasse Instanzvariablen hinzufügen müssen, führt eine Kategorie den Job nicht aus - Kategorien fügen nur Methoden und keine Daten hinzu. Um Instanzvariablen hinzuzufügen, müssen Sie eine Unterklasse erstellen.

+0

Sie können Variablen zu einer Kategorie hinzufügen mit [Assoziierte Objekte] (http://shipster.com/associated-objects/) –

7

Eine Kategorie einer Klasse fügt Methoden zu dieser Klasse hinzu. Es kann keine Instanzvariablen hinzufügen.

Wenn Sie Instanzvariablen hinzufügen müssen, können Sie stattdessen eine Unterklasse erstellen.

+3

Wenn Sie Instanzvariablen hinzufügen müssen, können Sie verknüpfte Objekte verwenden. –

Verwandte Themen