Wenn Sie es ernst meinen, ein iOS-Entwickler zu werden, dann müssen Sie sich unbedingt mit Objective-C vertraut machen, einer Erweiterung der C-Sprache. Wenn Sie bereits Erfahrung mit einer objektorientierten Sprache haben, sollte das Erlernen von Objective C ganz einfach sein.

Einführung Objective-C

Noch nie eine Zeile Code geschrieben?

Wenn Sie noch nie eine Zeile Code geschrieben haben und daran interessiert sind, iOS-Anwendungen zu entwickeln, dann würde ich ihnen sehr empfehlen, eines dieser Bücher zu lesen: Programmierung in Objective-C oder Cocoa Buch.

Grundsyntax für eine Klasse.

Die meisten objektorientierten Sprachen haben eine Klasse, die Daten kapselt und Zugriff darauf bietet. In Objective-C kann eine Klasse Instanzvariablen, Methoden und/oder Eigenschaften enthalten. Betrachten wir ein Beispiel für eine Klasse mit der Bezeichnung Book.

Alle Klassen werden in zwei Teilen deklariert:

.h – enthält das Interface, das eine Deklaration der Klassenstruktur ist.

.m – enthält die Implementierung aller Methoden.

Die Member-Variablen sind standardmäßig auf privat gesetzt, daher müssen Sie Accessor-Methoden schreiben, die ihre Getter- und Setter-Methoden sind. Im obigen Beispiel hat die Klasse Book die Methoden getAuthor und setAuthor, um den Autor eines Buches holen und setzen zu können.

Methoden.

Die Methodensignatur beginnt mit einem Plus oder Minus, dem Methodennamen und anschließend mit Argumenten.

Es gibt zwei Arten von Methoden in Objective-C: Klassenmethoden und Instanzmethoden.

Copy to Clipboard

Eine Klassenmethode ist wie eine statische Methode in Java oder C#. Sie ist nicht an eine Instanz einer Klasse gebunden und kennt die Instanzvariablen nicht. Klassenmethoden sollten hauptsächlich verwendet werden, um ein neues Objekt, Dienstprogramm oder eine gemeinsame Instanz für eine Singleton-Klasse zu erstellen. Die obige Methode gibt ein Objekt zurück, das die Instanz der Klasse Book ist.

Instanzmethoden, wie der Name schon sagt, werden auf eine bestimmte Instanz einer Klasse angewendet.

Copy to Clipboard

Instanzmethoden können sich auch auf self oder super beziehen. Self bezieht sich auf seine eigene Instanz, während super sich auf die übergeordnete Klasse bezieht.

Properties

Wenn Sie zu viele Member-Variablen haben, dann kann das Sitzen und Schreiben von Getter/Setter-Methoden für sie mühsam werden. Ganz zu schweigen davon, dass der Code aufgebläht aussieht. Das ist der Grund, weshalb Objective-C ein Feature hat, welches als Property bezeichnet wird. Die Eigenschaftsdeklaration deklariert automatisch Getter/Setter-Methoden. Betrachten wir eine modifizierte Version der Klasse Book mit der Property:

Copy to Clipboard

Die Propertysyntax ist sehr einfach und beginnt mit @property gefolgt von Schlüsselwörtern, mit denen Sie festlegen können, ob Sie nur eine Getter-Methode oder sowohl eine Getter- als auch eine Setter-Methode wollen.

In ihrer Umsetzung wollen Sie ihre Property synthetisieren, die tatsächlich die Zugriffsmethoden erzeugt.

Copy to Clipboard

Sie können jederzeit ihre eigenen benutzerdefinierten Getter- und Setter-Methoden in ihrer Umsetzung erstellen.

Umsetzung.

Nachfolgend eine Implementierung für die Klasse Book.

Copy to Clipboard

Alle Methoden in der Implementierung müssen zwischen @implementation und @end definiert werden.

Die @synthesize generiert die Getter- und Setter-Methoden nach Bedarf.

Beide init-Methoden rufen zuerst die übergeordnete Klasse [super init] auf, damit sie eine Instanz initialisieren und dann zurückgeben kann. Die if-Anweisung prüft, ob self eine gültige Instanz ist.

Id erlaubt es ihnen, eine lose oder schwach typisierte Variable zu erstellen, wo der Typ oder die Klasse der Variable zur Laufzeit bestimmt wird. Obwohl id keinen Stern hat, bezeichnet es einen Zeiger auf ein Objekt und kann daher nicht für einen skalaren Typ wie int, float, double oder char verwendet werden.

Dies z.B. ist ein gültiger Code:

Copy to Clipboard

Das hingegen ist falsch:

Copy to Clipboard

In Objective-C ist der Weg, ein Objekt freizugeben, die Methode release oder autorelease. Es gibt eine ganze Reihe rund um die Speicherverwaltung, aber um sie zusammenzufassen, wenn Sie es erstellen oder zusammenfassen, müssen Sie das Objekt jedes Mal, wenn Sie es erstellen oder zuweisen, besitzen und es daher freigeben. Beide Methoden verwenden die Methode autorelease, die dem System grundsätzlich mitteilt, dass das Objektbuch in unmittelbarer Zukunft freigegeben werden soll, um das Eigentum freizugeben.

Konvention.

Die beiden Create-Methoden der Klasse Book werden als Convenience-Konstruktoren bezeichnet, da sie die beiden Schritte der Zuweisung und Initialisierung zur Rückgabe von Instanzen der Klasse kombinieren. Die Konvention schreibt vor, dass solche Methoden nicht mit dem Wort create, sondern mit dem Namen der Klasse beginnen. Im Folgenden finden Sie also die geeignete Methode, um diese Methoden zu definieren:

Copy to Clipboard

Vielen Dank für ihren Besuch.