-
Moderator
Dito mit kyuu. Objective-C hat auch keinen new-Operator und Klassen haben oft mehrere Konstruktoren mit verschiedenen Namen. Konventionen helfen hier.
Grundlegenderweise allokiert man ein Objekt so: NSString* foo = [NSString alloc]; (Der NS-Präfix identifiziert die Klasse als Teil der Standardbibliothek und ist kurz für "NeXTStep".)
Die so erzeugte Instanz muß man dann noch initialisieren. Im einfachsten Fall sieht das so aus: [foo init];
Wenn man mit Parametern initialisieren will, dann muß man eine entsprechende Funktion dafür bereitstellen: [foo initWithString:someString];
Jetzt ist es umständlich, immer NSString* foo = [[NSString alloc] initWithString:someString]; zu schreiben, also gibt es für so etwas statische Wrapper. Mit denen sieht das dann so aus: NSString* foo = [NSString stringWithString:someString];
Jeder Obj-C-Entwickler erkennt sofort, daß initWithFoo:bar: das Objekt mit einem foo und einem bar initialisiert oder daß [Foo foo] eine statische Methode ist, die ein Foo allokiert und initialisiert. Schlicht, weil die Stilrichtlinien der Sprache und alle sinnvollen Codebeispiele (vor Allem natürlich die ganze API) einem genau das vorleben.
Letztenendes ist das auch nur eine Konvention, aber es ist eine, die den Code schön lesbar hält.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln