Swift im Detail

Thomas Sillmann

Swift im Detail

2015

346 Seiten

Format: PDF, Online Lesen

E-Book: €  23,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446444232

 

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

 

© 2009-2024 ciando GmbH