Suchen und Finden
Vorwort zur dritten Auflage
5
Übersicht
9
Inhaltsverzeichnis
10
1 Einführung
19
Die Sprache und das Framework
20
Objective- …
20
Nachrichten
22
Objekte
22
Klassen und Klassenobjekte
24
Ableitung und Vererbung
28
Überschreiben und Polymorphie
29
Erweiterung oder Spezialisierung
31
Delegieren: alternative Spezialisierungen
33
… C …
34
… und Cocoa
36
Cocoa als Library
37
Cocoa als Umgebung
37
Xcode Developer-Tools
38
Installation der Developer-Tools
38
Xcode Integrated Developer Envirement
38
Compiler, Linker und Build
39
Debugger
45
Zusammenfassung und Ausblick
45
2 Umrechner – Die erste Applikation
47
Xcode und das Projekt
48
Projekt anlegen
49
Die Bereiche des Projektfensters
52
Die Symbolleiste
53
Die Navigatoren
55
Der Projektnavigator
55
Symbolnavigator
59
Search-Navigator
60
Sonstige
61
Xib-Editor: das User-Interface
61
Die Objektliste
62
Placeholder
63
Objects
64
Die Library im Interface Builder
65
Der Inspector für die Einstellungen
68
Outlets, Actions und Targets
71
Der Button als Anfang allen Übels
71
Die Klasse Controller, …
73
… und das Instanzobjekt
77
Outlets: Verbindungen zum User-Interface
79
Outlet graphisch erzeugen
81
Outlet selbst programmieren
84
Letztes Textfeld
88
Outlets kontrollieren
88
Action-Target: Verbindungen vom User-Interface
89
Manuell: Action schreiben und Target setzen
89
Automatisch Methode erzeugen lassen und setzen
92
Action kontrollieren
93
Konsole
93
Source-Editor: erste Schritte des Programmierens
95
Nachrichten – Wir beginnen zu sprechen
95
Variablen und Returnwerte – Fragen und Antworten
97
Dokumentation und Quick-Help
99
Vollständige Dokumentation
99
Kurzdokumentation
101
Fehleranzeige
103
Lesen – Denken – Schreiben
104
Der Debugger
106
Breakpoints
106
Angezeigte Informationen
107
Editor
107
Debugger
108
Navigationsleiste
109
Durchlaufen
110
Das letzte Drittel: Das Model
111
Amin’s next top model: äußere Ansichten …
111
… und innere Werte
118
Modelbeschreibung und -editor
119
Verbindungen schaffen
122
Zusammenfassung und Ausblick
137
3 Objective-C
139
Kleinkram
143
Typen
143
Einfache Datentypen
144
Strukturen
145
C-Arrays
150
Zeiger
151
Objektvariablen
155
Objektarten
161
Klassen- und Instanzobjekte
161
Entitäten und Container
162
Swinger-Club für Objekte – Attribute und Beziehungen
162
Mathematische Operationen
165
Kontrollstrukturen
167
Verzweigungen
168
Schleifen
171
Bedingungen
176
Ausführungseinheiten
179
Blöcke
179
Funktionen
180
Methoden
184
Closures (Objective-C-Blocks)
188
Konzept
188
Syntax im Einzelnen
193
Praktische Anwendung in Cocoa
196
Klasse
196
Interface (Beschreibung)
197
Die Klasse und ihre Basisklasse
198
Instanzvariablen
200
Eigenschaften (Declared-Propertys)
200
Methodenliste
205
Class-Continuation
206
Möglichkeiten
207
Zweck
207
Implementierung (Funktionalität)
209
Eigenschaften
210
Weitere Methoden
211
Verwendung
212
Erzeugung einer Instanz
212
Benutzen der Instanz
214
Instanzvariablen
215
copy und strong (und weak)
217
Eine Subklasse als Spezialisierung
223
Eine Subklasse als Erweiterung
227
Kategorien
233
Erweiterung
234
Strukturierung
237
Kapselung
238
Informelle Protokolle
238
Protokolle
238
Definition
239
Übernahme in Klassen
240
Verwendung
242
Required-Methoden
242
Optional-Methoden
242
Protokolltypisierung
244
Protokollabfrage
246
Zusammenfassung
247
4 Foundation
249
Objekterzeugung
250
Allokation
250
Initialisierung
251
Designated-Initializer
251
Secondary-Initializer
256
Ererbte Initialisierer
257
Zusammenfassung
262
Initialisierung von Klassenobjekten
262
Convenience-Allocators und +new…
263
Kopien: Objektorientiertes Plagiieren
269
Kopien, Identität, Dasselbe, Das Gleiche
269
Implementierung
272
Convenience-Copy
279
Gleichheit
279
Zusammenfassung
281
Speicherverwaltung
281
Das Konzept anhand von Automatic Reference Counting
282
Vernetztes Denken
283
Anker
288
Löschwelle
294
Weak – Zyklen und der Softie unter den Settern
295
Autorelease-Pools und die Rückgabe von Objekten
305
Zusammenfassung
318
Manuelle Speicherverwaltung
319
Grundregel
319
Lokale Variablen
319
Accessoren und Instanzvariablen
323
Rückgabe
325
Objektvernichtung
327
Zusammenfassung
327
Automatische vs. Manuelle Speicherverwaltung
327
Container
328
Arten von Containern
329
Skalare Container
331
Formatter
333
Werte
335
Zahlen
336
Dezimalbrüche
337
Zeichenketten
343
Date und Calendar
349
Binäre Daten
350
Collections
350
Elemente und Speicherverwaltung
351
Erzeugung
354
Keine Collection, leere Collection und leeres Element
355
Abzählung
356
Sets
359
Counted-Sets
360
Ordered-Sets
361
Arrays
361
NSDictionary
363
Property Lists
365
Struktur
366
Umwandlung von Entitäten in Property-Lists
367
XML-Property-Lists
368
Zusammenfassung
369
5 Die Viewschicht
371
Grundlagen
372
Responder als Basisklasse
372
Fenster
374
Views
374
Die Aufgabenteilung zwischen Fenstern und Views
374
Views und Cells
380
Nib-Files
384
Menüs
387
Fenster
389
Wichtige Eigenschaften
390
Delegate
393
Sheets
396
Synchrone Alerts
397
Asynchrone Alerts
398
Synchrone, applikationsmodale Fenster
400
Asynchrone, fensterlokale Sheets
404
Drawers
407
Toolbars
408
Toolbar-Struktur
408
Eigene Toolbar erstellen
411
Views und Controls
416
Wichtige Eigenschaften
416
Autolayout
419
Constraints
421
Ungleichungssystem
423
Nutzung aus dem Code
425
Buttons
426
Aktionsbuttons
427
Umschaltbuttons
427
Imageviews
429
Boxen
430
Tabviews
430
Splitviews
433
Progressindicator
434
Textfelder
439
Pop-up-Buttons
440
Scrollviews
442
Tableviews
444
Struktur
444
Content-Mode
445
Data-Source
447
Sourceview
447
Selection
449
Outlineviews
449
Weitere Views und Eigenschaften
449
Animation
450
Zusammenfassung
453
6 Die Controllerschicht
455
Bindings-Controller, KVC, KVV und KVO
456
Grundlagen
456
Key und Key-Path
456
Key-Value-Coding
458
Key-Value-Validation
458
Key-Value-Observation
458
Cocoa-Bindings (Key-Value-Bindings)
459
Key-Value-Coding
460
Funktionsweise
461
Einfache Accessoren (Getter und Setter)
463
Ungeordnete To-many-Relationships (Sets)
465
Geordnete To-many-Relationships (Arrays, Ordered-Sets)
471
Zusammenfassung:
472
Fehlermethoden
472
Key-Value-Validation
473
Key-Value-Observing
474
Bindings
476
Bindbare Eigenschaften
476
Bindings-Optionen
479
Value-Transformer
480
Der Arraycontroller
481
Einstellungen im Attributes-Inspector
481
Observierbare Eigenschaften
483
Der Tree-Controller
486
Der Dictionary-Controller
487
Der Defaults-Controller und Voreinstellungen
489
Defaultssystem
489
Registrationdefaults und Application-Delegate
491
Komplexe Bindings
497
Bindingsketten
497
Selektions-Bindings
503
Windowcontroller und Viewcontroller
508
Aufgabe und Stellung
508
Fenstertyp
511
Dokumentenwindowcontroller
513
Der eigene Windowcontroller
513
Document-Bindings
515
Outlets
517
Actions und First Responder
517
Infowindowcontroller
520
Inspector-Windowcontroller
529
Erstellen
530
Synchronisation
533
Viewcontroller
538
Notifications
539
Lokale Notifications
540
Notification definieren
541
Notification auslösen
543
Notification fangen
544
Als Observer anmelden
545
Notifications und Delegating
547
Distributed-Notifications
548
Data-Sources
550
Bindings einreißen und Data-Source vorbereiten
550
Die Urgründe
552
Manuelle Synchronisation der Auswahl
557
Personen zum Outlineview hinzufügen
560
Gruppen und ihre Elemente
563
Ansichten tauschen
565
Manuelle Synchronisation der Attribute
577
Key-Loop
578
Drag-and-drop-Controller, Pasteboards
579
Dragging
580
Dropping
582
Zusammenfassung
586
7 Die Modelschicht
587
Grundlagen
588
Inhalt
588
Informationen
588
Fähigkeiten
590
Modellierung
591
Problemstellung
591
Modellierungsregeln
593
Dokumente eigener Klassen
599
Modellimplementierung
600
Anbindung
601
Laden und Speichern
602
Methodensatz
603
Serialisierung mit Codern
603
Serialisieren
605
Deserialisierung
612
Handwerksregeln
613
Undo
614
Undo-Manager
614
Undo-Stack
615
Undo implementieren
619
Undo deaktivieren
624
Handwerksregeln
625
Core Data
625
Grundlagen
626
Aufgabe von Core Data
626
Was ist Core Data?
626
Aufbau
629
Modelbeschreibung
632
Entitätsbeschreibung
633
Eigenschaftsbeschreibungen
634
Klassen und Entitäten
641
Instanzverwaltung
642
Objekt-ID
642
Instanzerzeugung
643
Speicherverwaltung
645
Instanzvernichtung
645
Abweichungen zwischen Store und Kontext
647
Anpassung
647
Accessoren
648
Klasseneigenschaften
653
Eigene Attributtypen
656
Fetch-Requests
660
Prädikate
663
Eigenschaft (Key)
664
Wert
664
Operator
665
To-many-Beziehungen und Aggregate
666
Prädikaterzeugung
667
Sortierung
668
Möglichkeiten der Sortierung
668
Sort-Deskriptoren
668
Reihenfolgeeigenschaft im Model
669
Reihenfolgeeigenschaft per Drag-and-Drop und die Objekt-ID
675
Applikationsmodelle
683
Zugriff
683
Ohne Core-Data-Support
683
Im Code
684
Im Nib
685
Mit Core-Data-Support
685
Undo-Management
685
Laden und Speichern
686
Versions und Autosave
687
Zusammenfassung
687
8 Xcode & Co
689
Workspace, Projekt und Target
690
Übersicht
690
Workspaces
690
Workspace erzeugen
691
Projekte erzeugen
691
Mit Workspace arbeiten
692
Projekt
695
Target
695
Schemes
696
Configurations
697
Projektdateien
697
Datei hinzufügen
697
Dateien finden
700
Target
701
Summary
702
Info
703
Build-Settings
706
Build-Phasen
707
Lokalisierung
709
Ressourcen und Lokalisierung
710
Lokalisierte Dateien
710
Auswahl der Lokalisierung
711
Lokalisierung hinzufügen
711
Lokalisierung im Code
715
Das »Über«-Fenster
717
Texteditor und Code-Generierung
718
Texteditor und Preferences
718
Textvervollständigung
718
Code-Folding
719
Navigation
720
Kodierung
720
Bezeichnernutzung
721
Einrückung
721
Key Bindings
721
Code-Generierung
721
Core-Data
722
Interface Builder
722
Refaktorierung
722
Umbenennen
722
Auslagern
723
Klassenhierarchie
724
Konvertierung zu ARC
725
Codeanalyse
725
Die erste eigene Applikation
726
Leistungsumfang
726
Arbeitsabläufe
727
User-Interface
727
Model
727
Controller aufbauen
728
Testen und Fehlersuche
728
Anwendung publizieren
728
Archive-Build
729
Archive
729
Zusammenfassung
729
Index
731
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.