2009-04-25 10 views
3

In der NSObject Klasse Referenz sprechen sie über eine „isa Instanzvariable“, dieWorum handelt es sich bei der isa-Instanzvariable?

auf eine Datenstruktur initialisiert wird, dass die Klasse

kann jemand erklären, was beschreibt, ich sollte über dieses isa Beispiel wissen Variable? Wofür ist das gut? Was bedeutet Isa? Klingt wie eine Norm, wie DIN, ISO usw .; Irgendeine Idee was das ist?

Antwort

7

Es wird verwendet, um den Vererbungspfad einer Klasse zu bestimmen. Formaler:

Wenn ein neues Objekt erstellt wird, wird Speicherplatz zugeordnet und seine Daten in Form seiner Instanzvariablen initialisiert. Jedes Objekt hat mindestens eine Instanzvariable (von NSObject geerbt) namens isa, die initialisiert wird, um auf die Klasse des Objekts zu verweisen. Durch diese Referenz wird auch Zugriff auf Klassen im Vererbungspfad des Objekts gewährt. - Objective-C GNUstep Base Programming Manual: Objective-C

Der Name isa von dem OOP Konzept der IS-A kommt, die zwischen zwei Objekten, wie dies einfach eine Beziehung:

Ein Hund IS-A Säugetier.
Ein Auto IS-A Fahrzeug.

So ist die isa Instanzvariable kann hilfreich sein, dass es kann Ihnen sagen, was IS-A Beziehungen Ihre Klasse in seiner Vererbungshierarchie hat.

6

Es ist im Grunde der Zeiger auf die Klasse des Objekts und ist, was die Objective-C-Laufzeit basiert. Die Laufzeitumgebung verwendet sie, um eine Objekttabelle für die Methodenzuteilung und alles Weitere, das in der Klassenstruktur gespeichert ist, abzurufen. Es ist so ziemlich das Einzige, was jedes Objective-C-Objekt haben muss.

In den meisten Fällen können Sie es vollständig ignorieren.

Verwandte Themen