Seit Ende September ist mein Swift-Buch nun endlich erhältlich. Das Buch hat bereits eine bewegte Geschichte hinter sich: Ursprünglich war der Erscheinungstermin bereits für Juni vorgesehen. Das damals gut 600-seitige Buch auf der Basis von Swift 1.2 war nahezu druckfertig, als Gerüchte von Swift 2 die Runde machten.
Archiv der Kategorie: Swift
Versteckte Maus/Trackpad-Kürzel in Xcode
Manche Blog-Beiträge sind primär eine Gedächtnisstütze für den Autor. Dieser Beitrag fällt unter diese Kategorie — ist aber vielleicht auch für andere Xcode-Anwender nützlich. Er fasst zusammen, welche speziellen Maus- bzw. Trackpad-Kürzel es in Xcode gibt. (Wenn etwas fehlt: Bitte verfassen Sie einen Kommentar oder schreiben Sie an kontakt@kofler.info.)
try/catch in Swift 2
In der erste Version von Swift fehlte eine try-catch
-Konstruktion zum Umgang mit Fehlern. Diese Entscheidung ist vielfach auf Unverständnis gestossen. In Version 2 hat Apple nachgebessert: Es gibt nun eine try/catch-Syntax, die ähnlich wie in anderen Programmiersprachen aussieht, auch wenn sie intern vollkommen anders und insbesondere ohne Exceptions implementiert ist.
Update 12.9.2015: Der Beitrag berücksichtigt jetzt auch »try!« und »try?«.
Swift 2: Reflection
Swift fehlt leider ein allgemein gültiger Ansatz, um die Eigenschaften von Objekten bzw. Typen festzustellen. Andere Programmiersprachen besitzen dafür Reflection-Funktionen, z.B. Objective C, C# oder Java.
Swift ist aber zumindest eingeschränkt zur Selbstreflexion in der Lage, wobei sich die Vorgehensweise in der gestern freigegebenen Beta 4 von Xcode 7 Beta 4 nochmals geändert hat:
- Die globale Funktion
reflect
ist verschwunden, ebenso derMirrorType
. - Dafür gibt es die neue
Mirror
-Klasse.
Swift 2: Zeichenketten
Kurz bevor mein Buch zu Swift 1.2 in Druck ging, stellte Apple Swift 2.0 vor. Jetzt bin ich also dabei, das ganze Manuskript nochmals zu überarbeiten, damit es im September als echtes Swift-2.0-Buch erscheinen kann. Im Zuge dieser Überarbeitung werden ich gelegentlich die wichtigsten Neuerungen in Blog-Beiträgen präsentieren. Heute beginne ich mit Zeichenketten.
Optionals in Swift — Fluch oder Segen?
Viele Programmiersprachen unterscheiden zwischen Wert- und Referenztypen. Werttypen sind für elementare Daten gedacht, vor allem Zahlen. Referenztypen enthalten dagegen Verweise auf Objekte. Sie können null
sein, also nicht initialisiert, leer.
Swift unterscheidet ebenfalls zwischen Wert- und Referenztypen. Allerdings ist in Swift vieles ein Werttyp, was in anderen Sprachen ein Referenztyp wäre — Arrays, Dictionaries, Sets etc. Die eigentliche Besonderheit ist aber der Umgang mit dem Zustand null
, der in Swift nil
heißt:
- »Gewöhnliche Variablen« — egal, ob Wert- oder Referenztypen — müssen vor vor der ersten Verwendung initialisiert werden; in Klassen muss die Initialisierung im Rahmen der Deklaration oder durch die init-Funktion erfolgen.
-
Nur wenn die Variable zusätzlich als »Optional« gekennzeichnet wird, ist auch der Zustand
nil
erlaubt. Optionals gibt es gleichermaßen für Wert- und Referenztypen.
Swift 1.2
Seit gut einer Woche ist Xcode 6.3 mit Swift 1.2 verfügbar. Das ist das zweite »Minor Update« der Programmiersprache Swift. Lesen Sie hier, was sich im Vergleich zur Version 1.1 (Xcode 6.2) geändert hat.
Wie schnell ist Swift?
Ich bin ein passionierter Lotto-Spieler! Aber da mir mein Geld zu schade ist, um es beim Fenster rauszuwerfen bzw. dem Staat zu schenken, simuliere ich das Lottospielen nur. Z.B. in Java oder in Swift.
Mein erster Versuch, einen Lottosimulator in Swift zu programmieren, endete aber mit einer bösen Überraschung. Das Programm war grottenlangsam! Also bin ich der Sache auf den Grund gegangen. Soviel vorweg: Schuld waren Swifts Arrays und Dictionary. Die sind komfortabel in der Handhabung, aber nicht unbedingt schnell.
Update 10.2.2015: Ich habe die Benchmarktests gerade mit XCode 6.3beta / Swift 1.2 wiederholt. Lesen Sie die Updates am Ende des Beitrags!
Swift — Referenz aller Sonderzeichen
Die Syntax von Swift macht Gebrauch von unzähligen Sonderzeichen und Zeichenkombinationen — nicht nur für Operatoren, sondern auch für diverse andere Sprachfunktionen. Ich habe mich bemüht, hier eine möglichst vollständige Referenz aller Zeichen und ihrer Bedeutung je nach Kontext zusammenzustellen. Wenn etwas fehlt, melden Sie sich bitte, entweder per Mail an kontakt@kofler.info oder per Kommentar am Ende dieses Beitrags.
Swift — Besondere Operatoren
Swift kennt im Wesentlichen dieselben Operatoren wie die meisten anderen Programmiersprachen — also etwa +, -, * und / für die Grundrechnungsarten, = für Zuweisungen, == und === für Vergleiche etc. Allerdings gibt es in Swift auch einige Besonderheiten, die einen genaueren Blick rechtfertigen. Vorweg ein Überblick:
Operator Bedeutung
------------ -----------------------------
(a, b) = (1, 2) Mehrfachzuweisung
a &+ b Addition ohne Überlaufkontrolle
a &- b Subtraktion ohne Überlaufkontrolle
a &* b Multiplikation ohne Überlaufkontrolle
a &/ b Division ohne Überlaufkontrolle
a &% b Restwert ohne Überlaufkontrolle
a ?? b Nil Coalescing
a ~= b Vergleichsoperator für `switch/case`