Abonnieren  Kündigen          
        

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

Kontakt | Impressum | © Kai Surendorf

Benutzeranmeldung

Shout Box

Kai Surendorf:

Arbeitsbelastung ist wieder auf

Kai Surendorf:

ein erträgliches Maß gesunken.

Kai Surendorf:

MarsEdit wird gerade getestet

Anmelden oder Registrieren um zu shouten.
Alle Shouts

RSS-Feeds

 
Die Episoden des Podcast zum Abonnement 

Werbung

In dieser Rubrik finden Sie eine Übersicht der Publikationen inklusive Inhaltsverzeichnis, Leseprobe und Pressestimmen.

Unter <opencontent> finden Sie eine Reihe von längeren Texten, die sich einigen Themen detaillierter widmen.

Die StickyBits sind das etwas unregelmäßig erscheinende Webzine auf mac.delta-c

Die regelmäßig aktualisierten Notizen verlinken kurz und knapp auf neue Programme, Tools, Artikel und Tutorials.

Unregelmäßig erscheinen neue Folgen im Screencast.

Im Podcast finden Sie launige, rein subjektive Kommentare zum Geschehen rund um Apple.

In dieser Rubrik finden Sie meine Meinung über Freeware, Shareware und kommerzielle Programme und weitere Produkte.

Das Forum ist ein Angebot, sich über die Publikationen im Speziellen und Mac OS X in all seinen Facetten generell auszutauschen.