• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

Wann Objekt und wann Klasse

msteffenma

Weigelts Zinszahler (Rotfranch)
Registriert
03.01.08
Beiträge
252
Hallo,

Ich wage mich immer mehr an Objective-c heran. An einer Stelle hänge ich vom Verständnis. Bei der Methoden implementation kann ich auf das Objekt verweisen mit - () Methode oder mit + () Klassenmethode.

Kann mir jemand verständlich machen, wann ich direkt auf die Klasse zugreife und warum. Ich dachte immer, die Klasse ist als Prototyp für Objekte gedacht?

Gruß Martin S.
 
Muss nicht... es gibt auch Methoden, welche die Klasse nur für sich nutzt - um irgend etwas zwischen zu rechnen als Beispiel. Oder Methoden, welche gar kein Objekt benötigen... die können direkt über den Klassennamen aufgerufen werden... statische Methoden (Static) zBsp...
 
Ich dachte immer, die Klasse ist als Prototyp für Objekte gedacht?
In ObjC existiert jede Klasse auch einmal als Objekt. Das Klassenobjekt.

Kann mir jemand verständlich machen, wann ich direkt auf die Klasse zugreife und warum.
Wenn man ein Objekt erzeugt schickt man dafür ja meist eine Nachricht an die Klasse. Und dem schickt man das alloc.
Also meistens beim Alloziieren, wenn man die Klasse was fragt, oder man einen Convenience Constructor nutzt.

Beispiele für o.g. Klassenmethoden:
Code:
[NSObject alloc];
[NSNumber class];
[NSArray array];
 
Zuletzt bearbeitet:
P.S.: Wenn man sich mal die Header der Klassen oder die Doku der Klassenmethoden ansieht, erklärt sich das fast von selbst. Denn NSObject hat die grundlegenden Klassenmethoden zur Objekterzeugung, Prüfung, etc. Die restlichen Klassen fast nur noch Convenience Constructors.