Inhaltsverzeichnis
Vorworte ... 15
Geleitwort des Gutachters ... 17
Einleitung ... 19
1 Objektorientierte Programmierung: Grundlagen ... 25
2 Ein erstes Programm: Hallo Anwender! ... 31
2.1 Projekt anlegen ... 32
2.2 Den Controller erstellen ... 33
2.3 Grafische Oberfläche erstellen ... 36
2.3.1 Oberfläche gestalten und Elemente platzieren ... 37
2.3.2 Elemente mit dem Controller verbinden ... 42
2.4 Programmcode erstellen ... 45
2.5 Kompilieren und Ausführen des Programms ... 46
3 Grundlagen von Objective-C ... 51
3.1 Grundlegende Konventionen ... 52
3.1.1 Ausdruck ... 52
3.1.2 Anweisung ... 53
3.1.3 Anweisungen in Blöcken ... 53
3.1.4 Bezeichner ... 53
3.1.5 Operatoren ... 54
3.1.6 Reservierte Schlüsselwörter ... 55
3.1.7 Kommentare ... 55
3.2 Ein einfaches Programm in Objective-C ... 56
3.2.1 Ein Programm eingeben und kompilieren ... 57
3.2.2 Der Aufbau im Detail ... 59
4 Variablen und Datentypen ... 63
4.1 Einführung ... 63
4.2 Gültigkeitsbereich von Variablen ... 65
4.3 Datentypen der Programmiersprache C ... 68
4.3.1 Einfache C-Datentypen ... 68
4.3.2 Typkonvertierung ... 70
4.3.3 Listen ... 71
4.3.4 C-Zeichenketten mit char ... 72
4.3.5 Datenstrukturen mit struct ... 73
4.4 Typen von Objekten in Objective-C ... 75
4.4.1 Der allgemeine Datentyp id ... 76
4.4.2 Zahlen mit NSNumber ... 77
4.4.3 Zeichen mit NSString ... 78
4.4.4 Listen mit NSArray ... 80
4.4.5 Benannte Listen mit NSDictionary ... 82
4.5 Zusammenfassung und Ausblick ... 84
5 Bedingungen und Funktionen ... 87
5.1 Grundlagen ... 87
5.1.1 Vergleichsoperatoren ... 87
5.1.2 Logische Operatoren ... 88
5.2 Steuerungsanweisungen ... 89
5.2.1 Bedingte Ausführung: if ... 89
5.2.2 Mehrfachauswahl: switch ... 91
5.2.3 In Kürze: Bedingter Ausdruck ... 93
5.2.4 Abschließende Empfehlungen ... 95
5.3 Funktionen ... 96
6 Schleifen ... 101
6.1 Schleifen definieren ... 101
6.1.1 Bedingte Wiederholung: while ... 101
6.1.2 Prüfung am Ende: do while ... 103
6.1.3 Die Zählschleife: for ... 104
6.2 Mehr Komfort ... 108
6.2.1 Definition in der Schleife ... 108
6.2.2 Verkürzte Schreibweisen ... 108
6.2.3 Schnelle Aufzählung mit Fast Enumeration ... 109
7 Objektorientierte Programmierung: Klassen erstellen und bearbeiten ... 113
7.1 Aufbau von Klassen in Objective-C ... 113
7.1.1 Deklaration einer Klasse ... 115
7.1.2 Implementierung einer Klasse ... 117
7.1.3 Allozieren und Initialisieren von Objekten ... 118
7.1.4 Die Klasse Autor verwenden ... 121
7.1.5 Klassenmethoden ... 122
7.1.6 Propertys in Objective-C 2.0 ... 123
7.2 Speicherverwaltung ... 126
7.2.1 Grundlagen ... 127
7.2.2 Garbage Collection ... 127
7.2.3 Referenzen zählen ... 129
8 Grundlagen von Cocoa ... 137
8.1 Einführung und Entwurfsmuster ... 137
8.1.1 Cocoa als Framework ... 138
8.1.2 Model-View-Controller ... 139
8.1.3 Delegation ... 139
8.1.4 Observer ... 141
8.1.5 Target-Action ... 142
8.2 Bestandteile von Cocoa ... 142
8.3 Cocoa in der Praxis ... 143
8.4 Der Interface Builder ... 148
8.5 Die Dokumentation von Apple ... 152
9 Fenster, Views und Voreinstellungen ... 155
9.1 Das Fenster für die Einstellungen ... 156
9.1.1 Attribute und Elemente des Fensters ... 156
9.1.2 Der First Responder, Next Key View und das Hauptmenü ... 157
9.1.3 Anlegen des Delegates für Applikation und Einstellungs-Panel ... 160
9.2 Voreinstellungen des Benutzers speichern ... 162
9.2.1 Personalisierung von Info.plist ... 163
9.2.2 Implementierung der Controller-Klasse ... 164
9.2.3 Garbage Collection aktivieren ... 168
9.3 Symbolleiste im Hauptfenster ... 168
10 Datenmodelle mit Core Data ... 173
10.1 Bestandteile von Core Data ... 174
10.2 Datenmodell erstellen ... 176
10.2.1 Entitäten anlegen ... 177
10.2.2 Attribute erzeugen und definieren ... 178
10.2.3 Beziehungen definieren ... 180
10.2.4 Suchabfragen definieren ... 183
10.3 Erweiterung des Objective-C-Codes ... 186
10.3.1 AppDelegate erweitern ... 186
10.3.2 Deklaration eines Core Data Controllers ... 187
10.4 Erweiterung der grafischen Oberfläche ... 189
10.5 Implementierung des AppDelegate ... 192
10.5.1 Definition einer privaten Kategorie ... 192
10.5.2 Einlesen des Objektmodells ... 193
10.5.3 Öffnen der Dateiablage ... 194
10.5.4 Initialisieren des Objektkontextes ... 197
10.5.5 Speichern der Daten ... 198
10.5.6 Zugriff auf Standardwerte ... 199
10.6 Der CoreDataExampleController ... 200
10.6.1 Hinzufügen einiger Hilfsmethoden ... 201
10.6.2 Tags in Managed Objects ... 203
10.6.3 Anzeigen aller gespeicherten Schlagwörter ... 204
10.6.4 Neuen Artikel anlegen ... 206
10.6.5 Anzeige aller Artikel ... 209
10.6.6 Anzeigen von verschlagworteten Artikeln ... 210
10.7 Ausführen der Anwendung ... 211
11 Cocoa Bindings ... 213
11.1 Grundlagen und Key-Value Coding ... 213
11.2 Erstellung der grafischen Oberfläche ... 215
11.2.1 Array Controller hinzufügen ... 216
11.2.2 Table View für Artikel anlegen ... 216
11.2.3 Textfelder für Titel und Autor ergänzen ... 218
11.2.4 Ein Feld für die Datumseingabe platzieren ... 219
11.2.5 Array Controller für die Schlagwörter ... 220
11.2.6 Table View für die Schlagwörter ... 221
11.2.7 Text View für den Inhalt des Weblog-Artikels ... 222
11.3 Artikel hinzufügen und löschen ... 223
11.3.1 Symbolleiste verbinden ... 224
11.3.2 Individualisierte Managed Objects ... 224
11.4 Hinzufügen von Tags ... 227
11.4.1 Schaltflächen und individualisierte Klasse ... 227
11.4.2 Array Controller für die Tags ... 229
11.4.3 Panel für die Tags erstellen ... 229
11.5 Ein Tag einem Artikel zuweisen ... 232
11.5.1 Schaltfläche und Aktivierungsregeln ... 232
11.5.2 Target-Action-Methode im App Delegate ... 234
11.6 Benutzerfreundlichkeit steigern -- Weitere Möglichkeiten mit Cocoa Bindings ... 236
11.6.1 Artikel nach Datum sortieren ... 237
11.6.2 Views deaktivieren ... 238
11.6.3 Anzahl der vorhandenen Artikel darstellen ... 239
11.6.4 NSUserDefaultController für die Voreinstellungen ... 240
11.6.5 Menüpunkte und Cocoa Bindings ... 242
12 Fehlerbehandlung und Debugging ... 245
12.1 Fehler während der Entwicklung erkennen ... 245
12.1.1 Protokolle mit NSLog ... 246
12.1.2 Bedingter Abbruch mit assert und NSAssert ... 248
12.2 Fehlersuche in Xcode ... 252
12.2.1 Fehlermeldungen beim Kompilieren ... 253
12.2.2 Debugger und Breakpoints ... 254
12.3 Auf Laufzeitfehler mit NSError und NSAlert reagieren ... 259
13 Arbeiten mit Texten im TextView ... 265
13.1 TextView und NSAttributedString ... 265
13.2 Text mit Hyperlinks versehen ... 267
13.2.1 Kategorien in Objective-C-Klassen ... 269
13.2.2 Menü und Target-Actions verbinden ... 270
13.2.3 Implementierung der Kategorie ... 271
14 Netzwerke und WebKit ... 277
14.1 WebKit zur Darstellung von Webseiten ... 278
14.1.1 Grafische Oberfläche erweitern ... 278
14.1.2 Spezielle Xib-Datei einbinden ... 280
14.1.3 WebPanelController implementieren ... 282
14.1.4 AppDelegate erweitern ... 285
14.2 Kommunikation ins Netzwerk ... 287
14.2.1 Grundlagen des URL Loading System ... 288
14.2.2 Synchrone und asynchrone Kommunikation ... 290
14.3 Integration eines externen Frameworks ... 293
14.3.1 Die MetaWeblog-Schnittstelle ... 293
14.3.2 XML-RPC Framework einbinden ... 294
14.3.3 Nutzung des XML-RPC Frameworks ... 299
14.3.4 AppDelegate um Protokoll erweitern ... 300
14.4 Artikeldaten in HTML konvertieren ... 301
14.5 Methoden zum Versand ... 304
14.5.1 Target-Action zum Senden ... 304
14.5.2 Die XMLRPCConnectionDelegate-Methoden ... 307
14.6 Grafische Oberfläche erweitern ... 309
14.6.1 Menüpunkt zum Senden ... 309
14.6.2 Symbolleiste ergänzen ... 311
14.6.3 Einsatz eines NSProgressIndicator ... 313
15 Exkurs: Arbeiten mit dem Schlüsselbund ... 317
15.1 Die Hilfsklasse MHKeychainItem ... 318
15.1.1 Instanzvariablen und Propertys deklarieren ... 319
15.1.2 Propertys synthetisieren ... 320
15.1.3 Zugriff auf den Schlüsselbund ... 322
15.2 Programmstart und sendeArtikel: überarbeiten ... 329
15.3 Grafische Oberfläche überarbeiten ... 332
15.3.1 Fenster der Einstellungen anpassen ... 332
15.3.2 Änderungen an MainMenu.xib und AppDelegate ... 334
15.3.3 Implementierung des PreferencesController ... 335
16 Drucken und NSOperationQueues ... 339
16.1 Verarbeitung von Druckjobs ... 340
16.1.1 Deklaration der Kategorie für den Druck ... 341
16.1.2 Implementierung der Kategorie ... 342
16.1.3 Anpassungen im Interface Builder ... 348
16.2 Nebenläufigkeit mit NSOperationQueues ... 349
16.2.1 Simulation eines langlebigen Programmteils ... 350
16.2.2 Grundlagen von NSOperationQueue und NSInvocationOperation ... 350
16.2.3 Aufbereitung der Artikel in einem Nebenthread ... 352
17 Zwischenablage und Widerrufen ... 359
17.1 Die Zwischenablage über NSPasteboard ... 359
17.1.1 Grundlagen ... 360
17.1.2 RTF aus der Zwischenablage ... 361
17.1.3 Copy, Paste und die Responder-Kette ... 365
17.2 Widerrufen mit dem NSUndoManager ... 370
17.2.1 Grundlagen ... 370
17.2.2 Undo für die Views aktivieren ... 370
17.2.3 Undo und Core Data ... 371
17.2.4 Das Setzen von Links rückgängig machen ... 372
18 Mit Dateien arbeiten ... 377
18.1 Dateien öffnen und speichern ... 377
18.1.1 Dateien öffnen mit dem NSOpenPanel ... 378
18.1.2 Dateien speichern und das NSSavePanel ... 380
18.2 Einsatz des NSFileManager ... 382
19 Core Animation ... 385
19.1 Grundlagen ... 386
19.2 Eigenschaften animieren und Filter anwenden ... 387
19.2.1 Transparenz im WebView ... 388
19.2.2 Filter im WebPanel ... 390
19.3 Explizite Animationen ... 394
20 Grundlagen der iPhone-Entwicklung ... 401
20.1 Gemeinsame Software-Architektur ... 401
20.2 Modernisierte und neue Frameworks ... 402
20.3 Einschränkungen des iPhone OS ... 402
20.4 Entwicklungsumgebung ... 403
20.5 Architektur einer iPhone-Anwendung ... 404
20.6 Kommunikation im Netzwerk ... 406
21 Der WeblogClient mit Cocoa Touch ... 407
21.1 Neues iPhone-Projekt erstellen ... 407
21.2 Core Data-Modell erstellen ... 409
21.3 Vorbereitungen für die Artikelübersicht ... 410
21.3.1 Arbeiten an MainWindow.xib ... 410
21.3.2 Klasse für den UITableViewController anlegen ... 412
21.3.3 Verbindungen zum Controller herstellen ... 414
21.4 Application Delegate überarbeiten ... 415
21.5 Implementierung der Artikelübersicht ... 418
21.5.1 Controller zum Verwalten der Suchergebnisse ... 418
21.5.2 Target-Action für neue Artikel ... 419
21.5.3 Initialisierung des Controllers ... 420
21.5.4 Delegate-Methoden zur Darstellung von Inhalten ... 424
21.5.5 Löschen von Artikeln ... 428
21.6 Ansicht für die Details erstellen ... 429
21.6.1 Eigene Ressourcendatei für das View ... 429
21.6.2 Neue Controller-Klasse deklarieren ... 431
21.6.3 UITableViewDelegate- und UITableViewDataSource-Methoden implementieren ... 433
21.6.4 Änderungen am ArtikelOverviewController ... 437
21.6.5 File's Owner und Delegates definieren ... 438
21.7 Views für Eingaben ... 439
21.7.1 Spezialisierte UIViewController anlegen ... 439
21.7.2 UIViewController im Interface Builder instanziieren ... 441
21.7.3 Implementierung des TextFieldController ... 443
21.7.4 Implementierung des DatePickerController ... 445
21.7.5 Implementierung des TextViewController ... 446
21.7.6 Selektion im DetailedViewController ... 449
22 Einstellungen, Netzwerk und Test ... 453
22.1 Einstellungen der Applikation ... 453
22.2 Settings Bundle hinzufügen und konfigurieren ... 454
22.2.1 NSUserDefaults integrieren ... 456
22.2.2 Autor für neuen Artikel anpassen ... 459
22.3 Kommunikation im Netzwerk ... 459
22.3.1 Einbindung des XML-RPC-Frameworks ... 460
22.3.2 DetailedViewController erweitern ... 461
22.3.3 UITableViewDelegate erweitern ... 465
22.4 Testphase auf einem Entwicklungsgerät ... 466
22.4.1 iPhone Developer Portal ... 467
22.4.2 Provisioning Profile installieren ... 470
22.4.3 Veröffentlichen der Anwendung ... 471
23 Tipps und Tricks zu Xcode ... 475
23.1 Rund um den Quelltext ... 475
23.1.1 Einrücken, Vervollständigen, Umbenennen ... 475
23.1.2 Markierungen und Lesezeichen ... 479
23.2 Funktionen und Klassen überblicken ... 481
23.3 Projektdateien organisieren ... 482
24 Cocoa jenseits von Objective-C ... 483
24.1 Python und PyObjC ... 483
24.2 Ruby und MacRuby ... 486
24.3 JavaScript und JSCocoa ... 488
24.4 F-Script ... 489
Anhang
A Mit der Dokumentation arbeiten ... 493
A.1 Von Guides, Klassen und Referenzen ... 493
A.2 Sich ein Thema erarbeiten ... 495
A.3 Mehr Komfort bei der Recherche ... 496
B Lokalisierung ... 499
B.1 Lokalisierte Ressourcen ... 499
B.2 Texte lokalisieren ... 501
C Glossar ... 503
D Die Buch-DVD ... 505
Index ... 507
- Anmelden oder Registrieren um Kommentare zu schreiben













