Swift im Detail
von: Thomas Sillmann
Carl Hanser Fachbuchverlag, 2015
ISBN: 9783446444232
Sprache: Deutsch
346 Seiten, Download: 17365 KB
Format: PDF, auch als Online-Lesen
Inhalt | 8 | ||
1 Apples neue Programmiersprache: Swift | 14 | ||
1.1 Willkommen bei Swift! | 14 | ||
1.2 Warum Swift? | 14 | ||
1.3 Swift und Objective-C | 15 | ||
1.4 Voraussetzungen für die Swift-Entwicklung | 16 | ||
1.4.1 Xcode | 16 | ||
1.4.2 Mac | 17 | ||
1.5 Swift-Ressourcen | 18 | ||
1.5.1 Apples Entwickler-Dokumentation | 18 | ||
1.5.2 Swift-Blog | 20 | ||
1.5.3 Code-Beispiele des Autors | 21 | ||
1.5.4 Das Internet | 22 | ||
2 Grundlagen der Programmierung | 24 | ||
2.1 Variablen und Konstanten | 28 | ||
2.1.1 Type Inference und Type Annotation | 30 | ||
2.2 Abfragen und Schleifen | 31 | ||
2.2.1 Bedingungen | 31 | ||
2.2.2 If | 34 | ||
2.2.3 While | 36 | ||
2.2.4 Do-While | 37 | ||
2.2.5 For | 38 | ||
2.2.6 For-In | 39 | ||
2.2.7 Switch | 41 | ||
2.2.8 Control Transfer Statements | 44 | ||
2.3 Kommentare | 46 | ||
2.3.1 Verschachtelte Kommentare | 46 | ||
2.3.2 Schlüsselwörter für Kommentare | 47 | ||
2.4 Fundamental Types | 48 | ||
2.4.1 Strings und Characters | 49 | ||
2.4.2 Arrays | 53 | ||
2.4.3 Dictionaries | 62 | ||
2.4.4 Tuples | 71 | ||
2.5 Funktionen | 73 | ||
2.5.1 Grundaufbau und Aufruf einer Funktion | 74 | ||
2.5.2 Eine erste einfache Funktion | 74 | ||
2.5.3 Funktion mit Parametern | 75 | ||
2.5.4 Funktion mit Rückgabewert | 76 | ||
2.5.5 Funktion mit mehreren Rückgabewerten | 79 | ||
2.5.6 Funktion mit optionalem Rückgabewert | 80 | ||
2.5.7 Funktion mit optionalen Parametern | 81 | ||
2.5.8 Local und External Parameter Names | 82 | ||
2.5.9 Funktionen mit Standardwerten für Parameter | 85 | ||
2.5.10 Funktionen mit beliebiger Parameterzahl | 87 | ||
2.5.11 Funktionen mit Variablen als Parameter | 88 | ||
2.5.12 Funktionen mit veränderbaren In-Out-Parametern | 89 | ||
2.5.13 Function Types | 91 | ||
2.5.14 Verschachtelte Funktionen | 95 | ||
2.6 Closures | 97 | ||
2.6.1 Closures als Variablen und Konstanten | 98 | ||
2.6.2 Closures als Parameter für Funktionen | 99 | ||
2.6.3 Kurzschreibweise für Closures als Parameter von Funktionen | 103 | ||
2.7 Enumerations | 105 | ||
2.7.1 Kurzschreibweisen für Enumerations | 108 | ||
2.7.2 Enumerations mittels Switch abfragen | 109 | ||
2.7.3 Zusätzliche Informationen in Enumeration-Werten speichern | 110 | ||
2.7.4 Member einer Enumeration feste Werte zuweisen | 112 | ||
2.7.5 Enumerations sind Value Types | 114 | ||
2.8 Structures | 115 | ||
2.8.1 Erstellen einer neuen Instanz | 116 | ||
2.8.2 Structures mit Properties | 117 | ||
2.8.3 Structures mit Methoden | 121 | ||
2.8.4 Structures sind Value Types | 122 | ||
3 Objektorientierte Programmierung mit Swift | 124 | ||
3.1 Swift und objektorientierte Programmierung | 124 | ||
3.2 Klassen | 125 | ||
3.2.1 Erstellen und Verwenden einer neuen Instanz | 126 | ||
3.2.2 Initialisierung von Objekten einer Klasse | 127 | ||
3.2.3 Klassen sind Reference Types | 130 | ||
3.2.4 Unterschiede zwischen Klassen und Strukturen | 132 | ||
3.3 Properties | 133 | ||
3.3.1 Stored Properties | 134 | ||
3.3.2 Computed Properties | 140 | ||
3.3.3 Property Observers | 146 | ||
3.3.4 Globale und lokale Variablen | 150 | ||
3.3.5 Type Properties | 151 | ||
3.4 Methoden | 154 | ||
3.4.1 Instance Methods | 154 | ||
3.4.2 Type Methods | 161 | ||
3.5 Subscripts | 163 | ||
3.5.1 Aufbau von Subscripts | 163 | ||
3.5.2 Subscript Overloading | 167 | ||
3.6 Optionals | 168 | ||
3.6.1 Forced Unwrapping | 170 | ||
3.6.2 Optional Binding | 173 | ||
3.6.3 Implicit Unwrapping | 174 | ||
3.6.4 Optional Chaining | 176 | ||
3.7 Vererbung | 183 | ||
3.7.1 Vererbung im Detail | 184 | ||
3.7.2 Überschreiben von Properties, Methoden und Subscripts | 187 | ||
3.7.3 Zugriff auf Properties, Methoden und Subscripts der Superklasse | 191 | ||
3.8 Initialisierung | 192 | ||
3.8.1 Grundaufbau eines Initializers | 192 | ||
3.8.2 Initializer mit Parametern | 194 | ||
3.8.3 Default Initializer | 196 | ||
3.8.4 Local Parameter Names und External Parameter Names in Initializern | 198 | ||
3.8.5 Initializer und Optionals | 199 | ||
3.8.6 Initializer und Constant Stored Properties | 201 | ||
3.8.7 Erstellen mehrerer Initializer | 202 | ||
3.8.8 Initializer und Vererbung | 207 | ||
3.8.9 Deinitialisierung | 225 | ||
3.9 Speicherverwaltung mit ARC | 227 | ||
3.9.1 Strong References und Reference Cycles | 228 | ||
3.9.2 Weak References | 231 | ||
3.9.3 Unowned References | 234 | ||
3.9.4 Best Practices zur Speicherverwaltung | 240 | ||
3.9.5 Closure Capture List | 240 | ||
3.10 Type Casting | 245 | ||
3.10.1 Typ prüfen mit is | 246 | ||
3.10.2 Downcasting mit as | 247 | ||
3.10.3 Any und AnyObject | 248 | ||
3.11 Nested Types | 251 | ||
4 Weiterführende Sprachmerkmale von Swift | 254 | ||
4.1 Extensions | 254 | ||
4.1.1 Syntax | 255 | ||
4.1.2 Computed Properties | 255 | ||
4.1.3 Methoden | 256 | ||
4.1.4 Initializer | 257 | ||
4.1.5 Subscripts | 258 | ||
4.1.6 Nested Types | 259 | ||
4.2 Protocols | 260 | ||
4.2.1 Syntax | 261 | ||
4.2.2 Deklaration von Properties | 262 | ||
4.2.3 Deklaration von Methoden | 264 | ||
4.2.4 Deklaration von Initializern | 267 | ||
4.2.5 Protocol Type | 270 | ||
4.2.6 Delegation | 271 | ||
4.2.7 Protocol Composition | 275 | ||
4.2.8 Protocols und Extensions | 277 | ||
4.2.9 Vererbung | 279 | ||
4.2.10 Class-Only Protocols | 281 | ||
4.2.11 Protocol Conformance | 282 | ||
4.2.12 Optionale Eigenschaften | 284 | ||
4.3 Generics | 286 | ||
4.3.1 Generic Functions | 287 | ||
4.3.2 Generic Types | 289 | ||
4.3.3 Type Constraints | 291 | ||
4.3.4 Associated Types | 292 | ||
4.4 Access Control | 296 | ||
4.4.1 Modules und Source Files | 297 | ||
4.4.2 Access Levels | 298 | ||
4.4.3 Syntax | 298 | ||
4.4.4 Access Levels in Custom Types | 299 | ||
4.4.5 Access Levels in Getter und Setter einer Property | 302 | ||
5 Swift, Cocoa und Objective-C | 304 | ||
5.1 Interoperability | 305 | ||
5.1.1 Swift Type Compatibility | 306 | ||
5.1.2 Selectors in Objective-C | 308 | ||
5.1.3 Optionals in Swift und Objective-C | 308 | ||
5.1.4 Arbeiten mit dem Interface Builder | 309 | ||
5.1.5 Arbeiten mit Core Data Managed Object Subclasses | 310 | ||
5.1.6 Automatic Bridging | 311 | ||
5.1.7 Cocoa Design Patterns | 313 | ||
5.2 Mix and Match | 313 | ||
5.2.1 Mix and Match innerhalb eines App-Targets | 314 | ||
5.2.2 Mix and Match innerhalb eines Framework-Targets | 316 | ||
5.3 Migration | 317 | ||
6 Swift und Xcode | 320 | ||
6.1 Installation von Xcode | 320 | ||
6.2 Erstellen eines neuen Swift-Projekts | 322 | ||
6.3 Der Grundaufbau von Xcode | 325 | ||
6.4 Neue Swift-Dateien erstellen | 329 | ||
6.5 Refactoring – leider nein! | 331 | ||
6.6 Playgrounds im Detail | 331 | ||
7 Profi-Wissen und Tipps für die tägliche Arbeit | 336 | ||
7.1 Zahlenwerte übersichtlicher gestalten | 336 | ||
7.2 Benennung von Variablen und Konstanten mit Sonderzeichen und Emoticons | 337 | ||
7.3 Switch für Fortgeschrittene | 338 | ||
7.3.1 Tuples | 338 | ||
7.3.2 Value Binding | 339 | ||
7.3.3 Where | 339 | ||
7.4 Kurzschreibweise für Abfragen bei return | 340 | ||
7.5 Custom Operators | 340 | ||
7.6 Swift-Beispielprojekte | 342 | ||
Index | 344 |