Zusammen mit der Ankündigung von iOS 8 und Yosemite überraschte Apple alle Entwickler im WWDC mit der Einführung einer neuen Programmiersprache mit der Bezeichnung Swift. Swift wird als schnelle, moderne, sichere und interaktive Programmiersprache beworben. Die Sprache ist einfacher zu erlernen und verfügt über Funktionen, die die Programmierung produktiver machen. Es scheint ganz so, dass Swift entwickelt wurde, um Webentwickler dazu zu bringen, Anwendungen zu erstellen. Die Syntax von Swift ist für Webentwickler vertrauter. Wenn Sie etwas Programmiererfahrung mit JavaScript haben, wäre es einfacher für Sie, Swift als Objective-C zu verwenden.
Wenn Sie die Keynote der WWDC gesehen haben, sollten Sie von einer innovativen Funktion mit der Bezeichnung Playgrounds überrascht sein, mit der Sie Swift ausprobieren und das Ergebnis in Echtzeit sehen können. Mit anderen Worten, Sie müssen ihre Anwendung nicht mehr im Simulator kompilieren und ausführen. Wenn Sie den Code in Playgrounds eingeben, sehen Sie sofort das tatsächliche Ergebnis ohne den Aufwand der Kompilierung.
Zum Zeitpunkt der Veröffentlichung dieses Beitrags wurde Swift nur für eine Woche angekündigt. Wie viele von euch bin ich neu bei Swift. Ich habe Apples kostenloses Swift-Handbuch herunterladen und ein wenig damit herumgespielt. Swift ist eine saubere Sprache und wird die Entwicklung von iOS-Applikationen auf jeden Fall attraktiver machen. In diesem Beitrag möchte ich das Gelernte mit ihnen teilen und ihnen zumindestens die Grundlagen ein wenig näher bringen.
Variablen, Konstanten und Type Inference.
In Swift deklarieren Sie Variablen mit dem Schlüsselwort „var“ und Konstanten mit dem Schlüsselwort „let“. Hier ist ein Beispiel:
Dies sind die beiden Schlüsselwörter, die Sie für die Deklaration von Variablen und Konstanten kennen müssen. Sie verwenden einfach das Schlüsselwort „let“, um einen unveränderten Wert zu speichern. Andernfalls verwenden Sie das Schlüsselwort „var“, um einen Wert zu speichern, der geändert werden kann.
Interessant ist, dass Sie mit Swift fast jedes beliebige Zeichen für Variablen- und Konstantennamen verwenden können. Sie können sogar Emoji-Zeichen für die Namensgebung verwenden.
Sie können einen großen Unterschied in der Variablendeklaration zwischen Objective C und Swift feststellen. In Objective C müssen Entwickler bei der Deklaration einer Variablen explizit die Typinformationen angeben. Sei es ein int oder double oder NSSString etc.
Es liegt in ihrer Verantwortung, den Typ anzugeben. Bei Swift müssen Sie Variablen nicht mehr mit Typinformationen versehen. Es bietet eine riesige Funktion, die als Typ Inference bekannt ist. Diese Funktion ermöglicht es dem Compiler, den Typ automatisch abzuleiten, indem er die von ihnen in der Variablen angegebenen Werte überprüft.
Es vereinfacht die Deklaration von Variablen und Konstanten im Vergleich zu Objective C. Swift bietet ihnen die Möglichkeit, die Typinformationen explizit anzugeben, wenn Sie dies wünschen. Das folgende Beispiel zeigt, wie man Typinformationen angibt, wenn man eine Variable in Swift deklariert:
Keine Semikolons.
In Objective C müssen Sie jede Anweisung in ihrem Code mit einem Semikolon abschließen. Wenn Sie dies vergessen, erhalten Sie einen Kompilierungsfehler.
Wie Sie aus den obigen Beispielen ersehen können, benötigt Swift kein Semikolon (;) nach jeder Anweisung, obwohl Sie es trotzdem tun können, wenn Sie möchten.
Grundlegende String-Manipulation.
In Swift werden Strings durch den String-Typ repräsentiert, der vollständig Unicode-konform ist. Sie können Strings als Variablen oder Konstanten deklarieren:
In Objective C müssen Sie zwischen den Klassen NSString und NSMutableString wählen, um anzugeben, ob der String geändert werden kann. In Swift brauchen Sie diese Wahl nicht zu treffen. Immer wenn Sie einen String als Variable (z.B. var) zuweisen, kann der String in ihrem Code geändert werden.
Swift vereinfacht die Stringmanipulation und erlaubt es ihnen, eine neue Zeichenkette aus einer Mischung von Konstanten, Variablen, Literalen und Ausdrücken zu erstellen. Das Verketten von Strings ist super einfach. Fügen Sie einfach zwei Strings mit dem Operator „+“ zusammen:
Swift kombiniert automatisch beide Meldungen und Sie sollten die folgende Meldung in der Konsole sehen. Beachten Sie, dass printIn eine globale Funktion in Swift ist, um die Nachricht in der Konsole zu drucken.
Der String-Vergleich ist einfacher. In Objective C können Sie den Operator == nicht verwenden, um zwei Zeichenketten zu vergleichen. Stattdessen verwenden Sie die Methode isEqualToString: von NSString, um zu prüfen, ob beide Zeichenketten gleich sind. Schließlich ermöglicht Swift den direkten Vergleich von Strings mit dem == Operator.
Die Syntax der Deklaration eines Arrays in Swift ist ähnlich wie in Objective C. Hier ist ein Beispiel.
Objective C:
Swift:
Während Sie beliebige Objekte in NSArray oder NSMutableArray in Objective C einfügen können, ist es mit den Arrays in Swift nur möglich, Objekte des gleichen Typs zu speichern. Sagen wir, Sie können nur Strings im obigen String-Array speichern. Bei Typ Inference erkennt Swift automatisch den Array-Typ. Wenn Sie möchten, können Sie den Typ aber auch im folgenden Formular angeben:
Wie NSArray bietet der Swift verschiedene Methoden, um ein Array abzufragen und zu manipulieren.
Verwenden Sie einfach die Zählmethode, um die Anzahl der Elemente im Array herauszufinden:
In Object C verwenden Sie die addObject: Methode von NSMutableArray, um ein neues Element zu einem Array hinzuzufügen. Swift macht die Bedienung noch einfacher. Sie können einen Eintrag mit dem Operator „+=“ hinzufügen:
Dies gilt, wenn Sie mehrere Elemente hinzufügen müssen:
Um auf ein bestimmtes Element in einem Array zuzugreifen oder es zu ändern, übergeben Sie den Index des Elements mit Hilfe der Index-Syntax wie in Objective C.
Eine interessante Eigenschaft von Swift ist, dass Sie mit „….“ einen Wertebereich ändern können. Hier ist ein Beispiel:
Damit ändert sich der Punkt 2 bis 4 der Rezeptpalette in „Käsekuchen“, „Griechischer Salat“ und „Geschmorte Rinderbäckchen“.
Wörterbücher.
Swift bietet nur zwei Kollektionstypen an. Das eine sind Arrays und das andere sind Wörterbücher. Jeder Wert in einem Wörterbuch ist mit einem eindeutigen Schlüssel verknüpft. Wenn Sie mit NSDictionary in Objective C vertraut sind, ist die Syntax der Initialisierung eines Wörterbuchs in Swift sehr ähnlich. Hier ist ein Beispiel:
Objective C:
Swift:
Der Schlüssel und der Wert in den Schlüssel-Wert-Paaren sind durch einen Doppelpunkt getrennt. Wie Array und andere Variablen erkennt Swift automatisch den Typ des Schlüssels und des Wertes. Wenn Sie möchten, können Sie die Typinformationen jedoch mit der folgenden Syntax angeben:
Um durch ein Wörterbuch zu iterieren, verwenden Sie die for-in-Schleife.
Sie können auch die Schlüssel- und Werteeigenschaften verwenden, um die Schlüssel und Werte des Wörterbuchs abzurufen.
Um auf den Wert eines bestimmten Schlüssels zuzugreifen, geben Sie den Schlüssel mit Hilfe der Index-Syntax an. Wenn Sie dem Wörterbuch ein neues Schlüssel-Wert-Paar hinzufügen möchten, verwenden Sie einfach den Schlüssel als Index und weisen Sie ihm einen Wert wie unten angegeben zu:
Jetzt enthält das Firmenwörterbuch insgesamt 5 Einträge. Das Paar „TWTR“: „Twitter Inc“ wird automatisch dem Firmenwörterbuch hinzugefügt.
Klassen.
In Objective C erstellen Sie separate Interface- (.h) und Implementierungsdateien (.m) für Klassen. Swift benötigt keine Entwickler mehr, um das zu tun. Sie können Klassen in einer einzigen Datei (.swift) definieren, ohne das externe Interface und die Implementierung zu trennen.
Um eine Klasse zu definieren, verwenden Sie das Schlüsselwort class. Hier ist eine Beispielklasse in Swift:
Ähnlich wie Objective C, oder? Im obigen Beispiel definieren wir eine Recipe Class mit drei Eigenschaften, darunter Namensdauer und Inhaltsstoffe. Swift verlangt, dass Sie die Standardwerte der Eigenschaften angeben. Sie erhalten einen Kompilierungsfehler, wenn die Anfangswerte fehlen.
Was ist, wenn Sie keinen Standardwert zuweisen wollen? Swift erlaubt es ihnen, ein Fragezeichen (?) nach dem Typ eines Wertes zu schreiben, um den Wert als optional zu markieren.
Im obigen Code werden der Name und die Eigenschaften der Inhaltsstoffe automatisch mit einem Standardwert von 0 zugewiesen. Um eine Instanz einer Klasse zu erzeugen, verwenden Sie einfach die folgende Syntax:
Sie verwenden die Punktnotation, um auf die Eigenschaft einer Instanz zuzugreifen oder diese zu ändern.
Swift ermöglicht die Unterklasse Objective-C-Klassen und die Übernahme von Objective-C-Protokollen. Beispielsweise haben Sie eine SimpleTableViewController-Klasse, die sich von der UIViewController-Klasse erstreckt und sowohl die Protokolle UITableViewDelegate als auch UITableViewDataSource übernimmt. Sie können weiterhin die Objective C Klassen und Protokolle verwenden, aber die Syntax ist etwas anders.
Objective C:
Swift:
Methoden.
Mit Swift können Sie Methoden in Klasse, Struktur oder Aufzählung definieren. Ich werde mich hier auf Instanzmethoden einer Klasse konzentrieren. Mit dem Schlüsselwort func können Sie eine Methode deklarieren. Hier ist eine Beispielmethode ohne Rückgabewert und Parameter:
In Objective C rufen Sie eine Methode wie diese auf:
In Swift rufen Sie eine Methode mit Hilfe der Punkte-Syntax auf:
Wenn Sie eine Methode mit Parametern und Rückgabewerten deklarieren müssen, sieht die Methode so aus:
Die Syntax sieht speziell für den > Operator etwas umständlich aus. Die obige Methode nimmt einen Namensparameter im String-Typ als Eingabe. Der Operator > dient als Indikator für eine Methode mit Rückgabewert. Im obigen Code geben Sie einen Rückgabetyp von Int an, der die Gesamtzahl der ToDo-Positionen zurückgibt. Im Folgenden wird gezeigt, wie Sie die Methode aufrufen:
Control Flow.
Control Flow und Loops verwenden eine sehr C-ähnliche Syntax. Wie Sie oben sehen können, bietet Swift eine for-in-Schleife zur Iteration durch Arrays und Wörterbücher. Sie können if-Anweisungen verwenden, um Code auszuführen, der auf einer bestimmten Bedingung basiert. Hier möchte ich nur die Switch-Anweisung in Swift hervorheben, die viel mächtiger ist als die in Objective C. Schauen Sie sich die folgende Beispiel-Switch-Anweisung an, Fällt ihnen etwas Besonderes auf?
Ja, die switch-Anweisung kann nun Strings behandeln. Sie können NSString in Objective C nicht einschalten. Sie mussten mehrere if-Anweisungen verwenden, um den obigen Code zu implementieren. Endlich bringt uns Swift diese am meisten gefragte Anwendung der Switch-Anweisung.
Eine weitere Erweiterung der switch-Anweisung ist die Unterstützung von Range-Matching. Werfen Sie einen Blick auf den untenstehenden Code:
Die Switch Cases ermöglichen nun die Überprüfung von Werten innerhalb eines bestimmten Bereichs durch zwei neue Operatoren: „…“ und „…<“. Beide Operatoren dienen als Abkürzung, um einen Wertebereich auszudrücken. Betrachtet man den Probenbereich von „41…70“, so definiert der …-Operator einen Bereich von 41 bis 70, der sowohl 41 als auch 70 umfasst. Wenn wir im Beispiel den Operator ..< anstelle von … verwenden, definiert dies einen Bereich von 41 und 69. Mit anderen Worten, 70 ist aus dem Sortiment ausgeschlossen.
Sollte ich noch Objective C lernen?
Durch diesen Beitrag haben Sie eine erste kurze Einführung in Swift bekommen. Dies war nur der Anfang. Wir werden weiterhin hier im Blog über unsere Erfahrungen mit Swift berichten. Wenn Sie Swift weiter vertiefen möchten, empfehlen wir ihnen, sich das kostenlose Swift-Buch aus dem iBooks-Store herunterzuladen.
Vielen Dank für ihren Besuch.