Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
1 Einführung
19
1.1 Xcode
19
1.2 Zu diesem Buch
19
1.3 Installation von Xcode
20
1.4 Umstieg von Windows
21
2 C und Objective-C – Grundlagen
23
2.1 Ein erstes Projekt
23
2.1.1 Projekt erzeugen
24
2.1.2 Xcode einrichten
25
2.1.3 Das Musterprogramm
26
2.1.4 Das eigene Programm, mit Kommentaren
27
2.1.5 Vorhandenes Projekt öffnen
29
2.2 Variablen für Zahlen
29
2.2.1 Namen von Variablen
31
2.2.2 Fehler während der Entwicklung
31
2.2.3 Fehler zur Laufzeit
32
2.2.4 Dokumentation, Hilfe
32
2.3 Rechnen mit Zahlen
33
2.4 Verzweigungen
34
2.4.1 Einfache und mehrfache Verzweigung
34
2.4.2 Logische Operatoren
36
2.5 Schleifen
38
2.6 Funktionen
40
2.7 Felder
44
2.8 Zeichenketten
46
3 C und Objective-C – für Fortgeschrittene
49
3.1 Zeiger
49
3.2 Strukturen
51
3.3 Headerdateien
56
3.4 Enumerationen
57
3.5 Bit-Operatoren und Bit-Masken
58
3.6 Mathematische Funktionen
60
3.7 Zufallszahlen
62
3.8 Aufruf von der Kommandozeile
64
3.9 Funktionen als Parameter
67
3.10 Übungen
69
3.10.1 Eingabe von Zahlen
69
3.10.2 Kopfrechnen, Eingabe und Ausgabe
70
3.10.3 Kopfrechnen, Verzweigung
71
3.10.4 Kopfrechnen, Schleife
71
3.10.5 Kopfrechnen, Funktion
72
3.10.6 Kopfrechnen, Feld
72
4 Foundation-Framework – Grundlagen
73
4.1 Strukturen, Klassen und Objekte
73
4.1.1 Methoden
74
4.1.2 Klassenmethoden
74
4.1.3 Ableitung und Klassenhierarchie
75
4.2 Ein erstes Foundation-Projekt
75
4.2.1 Projekt mit ARC
75
4.2.2 Das Musterprogramm
76
4.2.3 Das eigene Foundation-Programm
77
4.2.4 Methodenaufrufe
80
4.3 Klasse »NSNumber«
80
4.4 Klasse »NSString«
83
4.5 Klasse »NSMutableString«
86
4.6 Verweis »id«
89
4.7 Klasse »NSArray«
90
4.8 Klasse »NSMutableArray«
93
4.9 Dictionaries
96
4.10 Übung
99
5 Foundation-Framework – für Fortgeschrittene
101
5.1 Textdateien schreiben und lesen
101
5.2 XML-Dateien schreiben und lesen
103
5.3 Boolesche Variablen
106
5.4 Weitere Zahlentypen
108
5.5 Struktur »NSRange«
109
5.6 Geometrische Strukturen
112
5.7 Datum und Uhrzeit
113
5.8 Blöcke
115
5.9 Übung
117
6 Eigene Klassen – Grundlagen
119
6.1 Eine erste eigene Klasse
119
6.1.1 Erzeugen der Klasse
120
6.1.2 Deklaration der Klasse
121
6.1.3 Implementation der Klasse
122
6.1.4 Anwenden der Klasse
124
6.2 Properties
125
6.3 Initialisierung
126
6.3.1 Deklaration der Initialisierungen
127
6.3.2 Implementation der Initialisierungen
128
6.3.3 Anwenden der Initialisierungen
130
6.4 Punkt-Notation
131
6.4.1 Erzeugen der Klasse
132
6.4.2 Anwenden der Punkt-Notation
132
6.5 Kategorien
133
6.5.1 Erzeugen der Kategorie
133
6.5.2 Deklaration und Implementation der Kategorie
135
6.5.3 Anwenden der Kategorie
136
6.6 Protokolle und Delegates
137
6.6.1 Erzeugen des Protokolls
137
6.6.2 Deklaration von Protokoll und Delegates
139
6.6.3 Deklaration der Klasse
140
6.6.4 Implementation von Klasse und Delegates
140
6.6.5 Anwenden von Klasse und Protokoll
141
6.6.6 Protokolle und Verweise
142
6.7 Objekte speichern und laden
144
6.7.1 Einbinden des NSCoding-Protokolls
144
6.7.2 Implementation der NSCoding-Methoden
144
6.7.3 Speichern und Laden mit Property Lists
146
6.8 Objekt besitzt Objekt
148
6.8.1 Deklaration der inneren Klasse
149
6.8.2 Implementation der inneren Klasse
149
6.8.3 Deklaration der äußeren Klasse
151
6.8.4 Implementation der äußeren Klasse
152
6.8.5 Anwenden der beiden Klassen
153
6.9 Übung
154
7 Eigene Klassen – für Fortgeschrittene
155
7.1 Key-Value-Coding
155
7.1.1 Deklaration der Keys
155
7.1.2 Abrufen der Values
156
7.1.3 Setzen und Abrufen der Values
157
7.2 Key-Value-Coding mit Key Path
159
7.2.1 Die innere Klasse
159
7.2.2 Die äußere Klasse
160
7.2.3 Zugriff per Key Path
162
7.3 Key-Value-Observation
163
7.3.1 Die Klasse des überwachten Objekts
164
7.3.2 Die Klasse des überwachenden Objekts
164
7.3.3 Einrichten der Überwachung
166
7.4 Selektoren
168
7.5 Klassenmethoden
171
7.5.1 Erzeugen der Klassenmethode
171
7.5.2 Anwenden der Klassenmethode
173
7.6 Vererbung und Polymorphie
174
7.6.1 Die Basisklasse
174
7.6.2 Die abgeleitete Klasse
176
7.6.3 Anwenden der beiden Klassen
178
7.7 Verwaltung des Arbeitsspeichers
179
7.7.1 Ein Non-ARC-Projekt
180
7.7.2 Der Autorelease-Pool
182
7.8 Analyse und Beseitigung von Speicherlecks
184
7.8.1 ARC-Schalter umstellen
185
7.8.2 Projekt analysieren
186
7.8.3 Automatisches Freigeben
187
7.8.4 Manuelles Freigeben
189
7.9 Umwandlung von Non-ARC in ARC
190
7.9.1 Manuelle Umwandlung
190
7.9.2 Automatische Umwandlung
192
8 Benutzeroberflächen – Grundlagen
193
8.1 Eine erste Benutzeroberfläche
193
8.1.1 Projekt erzeugen
194
8.1.2 Das Musterprogramm
196
8.1.3 Xcode einrichten
196
8.1.4 Steuerelemente platzieren
199
8.1.5 Steuerelemente einstellen
201
8.1.6 Die Klasse »Controller«
202
8.1.7 Das »Controller«-Objekt
205
8.1.8 Verbindungen erzeugen
206
8.1.9 Das fertige Projekt
208
8.2 Ein Rechenprogramm
208
8.2.1 Projekt erzeugen
209
8.2.2 Die Klasse »Controller«
209
8.2.3 Das »Controller«-Objekt
211
8.2.4 Verbindungen erzeugen
212
8.3 Der »Size Inspector«
212
8.3.1 Größe und Position einstellen
213
8.3.2 Ein- und Ausschalten des »Auto Layouts«
214
8.3.3 Reaktion auf Größenänderung
214
8.3.4 »Constraints« im »Auto Layout«
215
8.4 Steuerelement »PopUp«
217
8.4.1 Projekt erzeugen
218
8.4.2 Methode »awakeFromNib«
219
8.4.3 Verbindungen erzeugen
221
8.5 Steuerelement »ComboBox«
222
8.6 Steuerelement »CheckBox«
225
8.6.1 Projekt erzeugen
225
8.6.2 Deklaration der Klasse »Controller«
226
8.6.3 Implementation der Klasse »Controller«
226
8.6.4 Verbindungen erzeugen
227
8.7 Steuerelement »RadioButton«
228
8.7.1 Projekt erzeugen
228
8.7.2 Deklaration der Klasse »Controller«
229
8.7.3 Implementation der Klasse »Controller«
230
8.7.4 Verbindungen erzeugen
231
8.8 Steuerelemente »Slider« und »Stepper«
231
8.8.1 Projekt erzeugen
232
8.8.2 Deklaration der Klasse »Controller«
234
8.8.3 Implementation der Klasse »Controller«
235
8.8.4 Verbindungen erzeugen
236
8.9 Icon für Anwendung
236
8.9.1 Icondatei erzeugen
236
8.9.2 Icondatei in Projekt einfügen
237
8.10 Steuerelement »DatePicker«
238
8.10.1 Projekt erzeugen
238
8.10.2 Deklaration der Klasse »Controller«
240
8.10.3 Implementation der Klasse »Controller«
240
8.10.4 Verbindungen erzeugen
243
8.11 Steuerelement »Panel«
244
8.11.1 Projekt erzeugen
245
8.11.2 Deklaration der Klasse »Controller«
245
8.11.3 Aufrufe des Anwendungsobjekts
246
8.11.4 Verbindungen erzeugen
247
8.12 Steuerelement »TextView«
248
8.12.1 Projekt erzeugen
248
8.12.2 Deklaration der Klasse »Controller«
250
8.12.3 Füllen des Textspeichers
251
8.12.4 Attribute ändern
252
8.12.5 Absätze, Wörter und Zeichen ausgeben
254
8.12.6 Attribute ausgeben
256
8.12.7 Speichern und laden
257
8.12.8 Verbindungen erzeugen
259
8.13 Übungen
260
8.13.1 Eingabe und Auswertung
260
8.13.2 Mit Einstellungen
260
9 Benutzeroberflächen – für Fortgeschrittene
261
9.1 Sprachausgabe
261
9.1.1 Projekt erzeugen
261
9.1.2 Deklaration der Klasse »Controller«
262
9.1.3 Elemente des Anwendungsfensters füllen
263
9.1.4 Einzelne Wörter anzeigen
265
9.1.5 Sprachausgabe einstellen
266
9.1.6 Sprache ausgeben, Sprache speichern
266
9.1.7 Verbindungen erzeugen
268
9.2 Dateidialoge und Dateiverwaltung
268
9.2.1 Projekt erzeugen
269
9.2.2 Deklaration der Klasse »Controller«
271
9.2.3 Speichern und laden
272
9.2.4 Dateioperationen über Pfad
274
9.2.5 Dateioperationen über Auswahl
277
9.2.6 Verbindungen erzeugen
282
9.3 Zwischenablage
283
9.3.1 Projekt erzeugen
283
9.3.2 Deklaration der Klasse »Controller«
284
9.3.3 Implementation der Klasse »Controller«
285
9.3.4 Verbindungen erzeugen
286
9.4 Drucken
286
9.4.1 »WebKit«-Framework einbinden
287
9.4.2 Deklaration der Klasse »Controller«
289
9.4.3 Drucktext erzeugen
289
9.4.4 Druckvorgang
291
9.4.5 Verbindungen erzeugen
293
9.5 E-Mail senden
293
9.5.1 Projekt erzeugen
293
9.5.2 Deklaration der Klasse »Controlller«
294
9.5.3 Implementation der Klasse »Controller«
295
9.5.4 Verbindungen erzeugen
296
9.6 Anwendungsmenü verändern
296
9.6.1 Projekt erzeugen
297
9.6.2 Menü erzeugen und gestalten
297
9.6.3 Die Klasse »Controller«
299
9.6.4 Verbindungen erzeugen
300
9.7 Symbolleiste
301
9.7.1 Elemente der Symbolleiste
301
9.7.2 Symbolleiste erzeugen und gestalten
303
9.7.3 Die Klasse »Controller«
305
9.7.4 Verbindungen erzeugen
306
9.8 Eintrag in Statusleiste
307
9.8.1 Projekt erzeugen
307
9.8.2 Menü erzeugen und gestalten
308
9.8.3 Deklaration der Klasse »AppDelegate«
309
9.8.4 Implementation der Klasse »AppDelegate«
309
9.8.5 Verbindungen erzeugen
311
9.8.6 Anwendungsmenü und Dock-Eintrag
312
9.9 Custom View und Image View
313
9.9.1 Projekt erzeugen
313
9.9.2 Klassen für Views erzeugen
314
9.9.3 Klasse des linken Views
315
9.9.4 Klasse des rechten Views
316
9.9.5 Anwendungsfenster gestalten
318
9.10 Steuerelement »Popover«
319
9.10.1 Popover erzeugen und verbinden
320
9.10.2 Die Klasse »Controller«
321
9.10.3 Verbindungen erzeugen
322
10 Benutzeroberflächen – weitere Themen
323
10.1 Cocoa Binding
323
10.1.1 Projekt erzeugen
323
10.1.2 Die Klasse »Controller«
324
10.1.3 Cocoa Bindings erzeugen
325
10.2 Steuerelement »Table View«
327
10.2.1 Das Model im MVC
327
10.2.2 Projekt erzeugen
328
10.2.3 Die Datenquelle des Table Views
329
10.2.4 Die Klasse für das Model
329
10.2.5 Deklaration der Klasse »Controller«
331
10.2.6 Verbindungen erzeugen
331
10.2.7 Model-Daten erzeugen
332
10.2.8 Pflichtmethoden der Datenquelle
334
10.2.9 Weitere Methode der Datenquelle
335
10.2.10 Model-Daten hinzufügen und löschen
336
10.3 Dokumentbasierte Anwendungen
337
10.3.1 Projekt erzeugen
337
10.3.2 »Model«-Klasse und »NSCoding«-Protokoll
338
10.3.3 Deklaration der »Document«-Klasse
340
10.3.4 Model-Daten erzeugen
340
10.3.5 Standardmethoden der »Document«-Klasse
341
10.3.6 Speichern und laden
342
10.3.7 »Array Controller« einrichten
343
10.3.8 Verbindungen erzeugen
345
10.4 »Core Data«
347
10.4.1 Projekt erzeugen
347
10.4.2 Datenstruktur erzeugen
348
10.4.3 Dokumentfenster gestalten
349
10.4.4 »Array Controller« einrichten
350
10.4.5 Verbindungen erzeugen
352
10.5 Maus- und Tastaturereignisse
353
10.5.1 Projekt erzeugen
353
10.5.2 »View«-Klasse erzeugen
354
10.5.3 Deklaration der »View«-Klasse
354
10.5.4 »View«-Klasse initialisieren
355
10.5.5 Zeichnen
356
10.5.6 Tastaturereignisse verarbeiten
357
10.5.7 Mausereignisse verarbeiten
358
10.6 Drag & Drop
359
10.6.1 »View«-Klasse erzeugen
360
10.6.2 »View«-Klasse initialisieren
361
10.6.3 Drag starten
362
10.6.4 Drop starten
363
10.6.5 View neu zeichnen
363
10.6.6 Anwendungsfenster gestalten
364
10.7 Core Animation
365
10.7.1 »QuartzCore«-Framework einbinden
366
10.7.2 Deklaration der Klasse »Controller«
367
10.7.3 Geometrische Daten ausgeben
368
10.7.4 Transparenz steuern
370
10.7.5 Schatteneffekt steuern
371
10.7.6 Visuelle Filter einsetzen
372
10.7.7 Animierte Bewegung
374
10.7.8 Verbindungen erzeugen
376
11 Apps für iPhone und iPad – Grundlagen
377
11.1 Eine erste App
377
11.1.1 Projekt erzeugen
378
11.1.2 Schema für Simulator auswählen
380
11.1.3 App-Fenster gestalten
380
11.1.4 App für Drehung vorbereiten
381
11.1.5 Die Klasse »ViewController«
383
11.1.6 Verbindungen erzeugen
385
11.2 App für iPad und universelle App
386
11.3 Action Sheet und Alert View
387
11.3.1 Projekt erzeugen
388
11.3.2 Deklaration der Klasse »ViewController«
388
11.3.3 Methoden für das Action Sheet
389
11.3.4 Methoden für die Alert View
391
11.3.5 Verbindungen erzeugen
392
11.4 Tastatur und Eingabesteuerung
393
11.4.1 Tastaturmodus wählen
394
11.4.2 Deklaration der »ViewController«-Klasse
395
11.4.3 Tastatur steuern
396
11.4.4 Verbindungen erzeugen
398
11.5 Einige Steuerelemente
398
11.5.1 Projekt erzeugen
400
11.5.2 Deklaration der »ViewController«-Klasse
400
11.5.3 Steuerelemente auswerten
401
11.5.4 Steuerelemente setzen
403
11.5.5 Aktivitätsindikator steuern
404
11.5.6 Progress View steuern
404
11.5.7 Verbindungen erzeugen
407
11.6 Steuerelement »Date Picker«
407
11.6.1 Deklaration der Klasse »ViewController«
408
11.6.2 Implementation der Klasse »ViewController«
409
11.6.3 Verbindungen erzeugen
411
11.7 Steuerelement »Picker View«
411
11.7.1 Deklaration der Klasse »ViewController«
412
11.7.2 Picker und Array initialisieren
413
11.7.3 Pflichtmethoden der Datenquelle
414
11.7.4 Methoden für Delegate
415
11.7.5 Bewegen im Picker
416
11.7.6 Neuen Eintrag hinzufügen
417
11.7.7 Eintrag ändern
418
11.7.8 Eintrag löschen
419
11.7.9 Verbindungen erzeugen
420
11.8 Animationen
420
11.8.1 Projekt erzeugen
421
11.8.2 Deklaration der Klasse »ViewController«
421
11.8.3 Geometrische Daten ausgeben
422
11.8.4 Animation von Farbe und Position
423
11.8.5 Animation von Größe und Transparenz
424
11.8.6 Rotations-Animation
425
11.8.7 Zurück zum Startzustand
426
11.8.8 Verbindungen erzeugen
427
11.9 Übungen
428
11.9.1 Eingabe und Auswertung
428
11.9.2 Mit Einstellungen
428
12 Apps für iPhone und iPad – für Fortgeschrittene
429
12.1 »Master-Detail Application«
429
12.1.1 Die Muster-App
430
12.1.2 Die eigene Master-Detail-App
432
12.1.3 Die Klasse für das Model
433
12.1.4 Master-View-Controller ändern
435
12.1.5 Initialisierung von Model und View
436
12.1.6 Pflichtmethoden der Datenquelle
438
12.1.7 Weitere Methode der Datenquelle
440
12.1.8 Detail-View-Controller ändern
441
12.1.9 Initialisierung von Model und View
442
12.1.10 Model-Daten ändern
443
12.1.11 Verbindungen erzeugen
445
12.2 »Tabbed Application«
445
12.2.1 Dritte View erzeugen
446
12.2.2 Deklaration der »AppDelegate«-Klasse
448
12.2.3 Initialisierung der View Controller
448
12.2.4 Wechsel des View Controllers
450
12.2.5 Die Klasse eines View Controllers
451
12.3 Geografische Daten mit Core Location
452
12.3.1 Projekt erzeugen
453
12.3.2 Datenerfassung initialisieren
453
12.3.3 Daten erfassen
455
12.3.4 Verbindungen erzeugen
456
12.3.5 Datenerfassung erlauben
456
12.3.6 Simulierte Daten berechnen
457
12.4 Steuerelement »Map View« und das Map Kit
458
12.4.1 Projekt erzeugen
460
12.4.2 Deklaration der Klasse »ViewController«
461
12.4.3 Tastatur ausblenden
462
12.4.4 Ort wechseln
462
12.4.5 Region wurde geändert
464
12.4.6 Verbindungen erzeugen
465
12.5 Steuerelement »Web View«
466
12.5.1 Projekt erzeugen
466
12.5.2 Implementation der Klasse »ViewController«
467
12.5.3 Verbindungen erzeugen
469
12.6 Mail senden
470
12.6.1 Projekt erzeugen
471
12.6.2 Mail View vorbereiten
472
12.6.3 Mail View auswerten
474
12.6.4 Verbindungen erzeugen
475
12.7 Apps auf dem eigenen iPhone testen
476
12.7.1 Entwickler-Lizenz erwerben
476
12.7.2 Entwickler-Zertifikat anfordern
476
12.7.3 Eigenes iPhone nutzen
477
Der Autor
479
Index
481