Mit dem dritten Beta-Release von iOS8 und Yosemite veröffentlicht Apple auch zahlreiche Änderungen an Swift. Diese sind auf jeden fall gravierend und es sind auf jeden fall Anpassungen an bestehenden Code nötig, so das dieser mit der neusten Beta weiterhin funktioniert. Wir haben uns das ganze angesehen und für euch aufbereitet. Ein aus unserer Sicht tolles Swift Update!
Array
Arrays wurden komplett neu-designt. So wurden mehrere Probleme gelöst, was die Wandlungsfähigkeit angeht.
Ein Array welches mit
let deklariert wurde ist nun komplett unveränderlich sowie ein
var Array nur noch komplett veränderbar ist.
Kopien von Arrays werden nun komplett und unabhängig durch eine effiziente „lazy copy implementation“ erstellt. Apple weisst aber darauf hin das bisweilen mit erheblichen Performanceverlusten rechnen muss.
Array und Dictionary „sugar“ Syntax
Hat man bisher ein Array folgendermaßen deklariert var meinIntArray: Int[] = [1234, 1234] , so wird dies in Zukunft mit var meinIntArray: [Int] = [1234, 1234] gemacht. Dies ist weiterhin ein equivalent für die Kurzform der Deklaration Array<Int>. Für Dictionaries sieht das ganze beispielhaft jetzt so aus var myDict: [String:String] = ["Key":"Value"] was var myDict: Dictionary<String,String> = ["Key":"Value"] entspricht.
Zahlenbereiche
Die Zahlenbereichs-Operatoren wurden nun von
.. zu
..< verändert um Verwirrung und Mehrdeutigkeit vorzubeugen.
So gibt es nun den
..< und
... Operator für halb geschlossene und geschlossene Bereiche. Das verwenden des
.. Operators ist nicht mehr möglich!
nil
nil ist nun ein Literal auf Sprachebene und keine globale Konstante vom
_Nil -Typ.
Dies löst einige Probleme wie sie Beispielsweise bei
nil in Collections oder bei der Konvertierung von
nil zu einem
Any .
APIs von C
APIs die von C importiert wurden, nutzen nicht länger Type Aliases wie CInt oder CFloat welche die darunter liegenden Typen verschleiert haben, sondern werden nun z.B. als Int32 und Float importiert. Dafür v0n uns ein Daumen hoch!
APIs von C mit Pointern
APIs die von C importiert werden und Pointer benutzen haben nun eine wesentlich einfachere API-Typen-Struktur. Diese ist viel berechenbarer, erhält die
const Wandlungsfähigkeit in mehr Fällen und erhält die
_autoreleased Pointer-Informationen.
Man erkennt nun Beispielsweise
UnsafePointer ,
ConstUnsafePointer und
AutoreleasingUnsafePointer.
Selbstverständlich passen wir Änderungen die Beiträge oder Videos unserer Tutorial-Reihe betreffen an und werden euch weiter auf dem Laufenden halten. Die neusten Videos die wir eigentlich heute veröffentlichen wollten, müssen wir leider noch einmal anpassen. Hierfür bitten wir um Verzeihung. Das wird bis zum finalen Release von Swift aber wohl noch häufiger vorkommen.
Das iBook zu Swift, dass auch die aktuellen Änderungen enthält, finden Sie hier.
Euer Stefan & Ralf
4 Comments
Hallo, ihr seid super, vielen dank!
Das coolste auf der ganzen Welt wäre, wenn ihr zeigen könntet, wie man mit einem schnellen xmlparser xml dateien einliest unter swift.
Das stimmt, das wäre echt cool. Diesbezüglich findet man im Internet fast gar nichts:(
Da gebe ich meinen beiden Vorredner recht. Ein kleines XML-Parsing-Tutorial wäre sehr sehr hilfreich.
Stefan und ich sind uns, nachdem dies bereits die zweite Anfrage ist, einig. Es wird ein XML Tutorial geben, jedoch werden wir vorher noch etwas an Basis Material verfassen bevor wir zu diesem Thema kommen werden.