O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Modern Objective-C und Cocoa - Programmierung für Mac OS X und iPhone

Book Description

  • Grundlagen von Objective-C und Cocoa
  • Programmierung für iPhone & Co.
  • Zahlreiche praxisnahe Beispiele

Holger Hinzberg zeigt Ihnen in diesem Buch von Grund auf und praxisnah, wie Sie Anwendungen mit Objective-C und Cocoa erstellen und die dazu nötigen Werkzeuge bedienen. Alle Funktionen werden anhand von Beispielen erklärt. So lernen Sie das Handwerkszeug, das Sie benötigen, um später eigene Anwendungen zu entwickeln. Der Autor stellt die Praxis in den Vordergrund und alle Beispiele sind so angelegt, dass sie leicht programmiert werden können.

In Teil I lernen Sie zunächst das Arbeiten mit der neuen Entwicklungsumgebung Xcode 5 kennen sowie alle wichtigen Grundlagen von Modern Objective-C. Anhand von einfachen Beispielprogrammen wie Volumenberechnungen oder Personenlisten lernen Sie die ersten Schritte, um eigene kleine Programme zu schreiben.

Teil II beschäftigt sich mit dem Einsatz von Cocoa für grafische Benutzeroberflächen. Hier lernen Sie, wie Textfelder, Schaltflächen und viele andere Steuerelemente funktionieren. MVC-Architektur, Delegation und Sprachausgabe sind nur einige der behandelten Themen. Von einem kleinen Rechner über eine Taxianwendung bis hin zu sortierbaren Tabellen mit Drag und Drop werden hier zahlreiche Beispielanwendungen entwickelt.

Teil III widmet sich der Programmierung für iOS, also für iPhone, iPad und iPod Touch. Diese Geräte bieten vollkommen andere Möglichkeiten der Bedienung. Hier erfahren Sie, was bei der Programmierung anders ist, welche Funktionen Sie benötigen und worauf Sie achten müssen.
Zu jedem Kapitel finden Sie Übungsfragen mit Lösungen.

Das Buch richtet sich an Leser mit grundlegenden Programmierkenntnissen einer objektorientierten Programmiersprache. Vorkenntnisse in der Mac-Programmierung sind nicht erforderlich.
Für das Buch wurde Xcode 5.1 verwendet und die Beispiele sind unter Mac OS X ab Version 10.8.4 Mountain Lion oder höher lauffähig.

Über den Autor:
Holger Hinzberg arbeitet seit vielen Jahren als Softwareentwickler und hat bereits die Bücher iPhone Apps programmieren sowie Mac-Programmierung für Kids geschrieben.

Amazon-Bewertung zur Vorauflage:
***** Dieses Buch ist meiner Meinung nach die beste Einführung in ObjC, die es für absolute Neulinge gibt.

    Aus dem Inhalt:Teil I: Grundlagen von Objective-C
  • Xcode 5
  • NSLog, Variablen und Format Specifier
  • Klassen und Objekte
  • Speicherverwaltung von Objekten
  • Properties und Eigenschaften
  • Die Syntax von Modern Objective-C
  • Der Debugger
  • Automatisierte Tests
  • Vererbung, Kategorien und Protokolle
  • Arrays und Dictionaries

  • Teil II: Cocoa-Anwendungen
  • MVC: Model View Controller
  • Sprachausgabe und Delegation
  • Steuerelemente
  • Benutzereinstellungen
  • Datenquellen und Tabellen
  • Sortierte Tabellen mit Drag & Drop
  • Geometry Calculator: ein kleiner Rechner

  • Teil III: iOS-Anwendungen für iPhone & Co. mit Cocoa Touch
  • Texteingaben und virtuelle Tastaturen
  • Storyboards
  • Tableisten-Navigation
  • Picker und Animation
  • Der Sourcecode aus dem Buch steht kostenlos zum Download zur Verfügung.

Table of Contents

  1. Impressum
  2. Danksagung
  3. Einleitung
  4. Teil I: Grundlagen von Objective-C
  5. Kapitel 1: Grundlagen
    1. 1.1 Das Cocoa Framework
    2. 1.2 Die typische Objective-C-Syntax
    3. 1.3 Kontrollstrukturen
    4. 1.4 Namenskonventionen
    5. 1.5 Kommentare
    6. 1.6 Stilmittel in den Listings
  6. Kapitel 2: Durchstarten mit Xcode 5
    1. 2.1 Die Installation von Xcode
    2. 2.2 Das erste Projekt
    3. 2.3 Das Workspace-Fenster
    4. 2.4 Der Project Editor und seine Targets
    5. 2.5 Der Navigator
    6. 2.6 Der Texteditor
    7. 2.7 Die Debugger-Ansicht
    8. 2.8 Die Einstellungen von Xcode
    9. 2.9 Die main-Methode
    10. 2.10 Die Schnellhilfe
    11. 2.11 Ein paar Fragen ...
  7. Kapitel 3: NSLog, Variablen und Format Specifier
    1. 3.1 Programmieren mit Code Sense
    2. 3.2 Zahlen formatieren mit Format Specifier
    3. 3.3 Zeichenketten mit NSString
    4. 3.4 Enum – Enumerated Type
    5. 3.5 Vergleichen von Zeichenketten
    6. 3.6 Zeichenketten sortieren
    7. 3.7 Textteilbereiche mit NSRange
    8. 3.8 NSMutableString
    9. 3.9 NSMutableString und Zeiger
    10. 3.10 Ein paar Fragen ...
  8. Kapitel 4: Klassen und Objekte
    1. 4.1 Header und Implementierung einer Objective-C-Klasse
    2. 4.2 Die Erben von NSObject
    3. 4.3 Hinzufügen einer neuen Objective-C-Klasse
    4. 4.4 Instanzvariablen und Accessor-Methoden
    5. 4.5 #import für die neue Klasse
    6. 4.6 Objekte erzeugen mit init, alloc oder new
    7. 4.7 Methoden im Einsatz
    8. 4.8 Methodenaufrufe mit self
    9. 4.9 Key Value Coding
    10. 4.10 Die Klassenbeschreibung
    11. 4.11 Polymorphie, Selektoren und Enten
    12. 4.12 Ein paar Fragen ...
  9. Kapitel 5: Speicherverwaltung und Objektreferenzen
    1. 5.1 Der Referenzzähler
    2. 5.2 Die Klasse Person
    3. 5.3 Objekte kopieren in Accessor-Methoden
    4. 5.4 Individuelle Initialisierungen
    5. 5.5 Klassenmethoden
    6. 5.6 Besitzer sind verantwortlich
    7. 5.7 Ein paar Fragen ...
  10. Kapitel 6: Objective-C wird modern
    1. 6.1 Properties – Die Eigenschaften einer Klasse
    2. 6.2 Eigenschaften statt Accessor-Methoden
    3. 6.3 Referenzen mit weak und strong
    4. 6.4 Eigenschaften auf Methoden
    5. 6.5 Respekt vor dem Unteilbaren
    6. 6.6 Eigenschaften mit anderen Variablen verbinden
    7. 6.7 Benutzerdefinierte Bezeichner für Eigenschaften
    8. 6.8 Die Punktnotation
    9. 6.9 Die Modern-Objective-C-Syntax
    10. 6.10 Ein paar Fragen ...
  11. Kapitel 7: Der Debugger
    1. 7.1 Haltepunkte
    2. 7.2 Debugging mit Einzelschritten
    3. 7.3 Editieren im Debugger
    4. 7.4 Step In und Step Out
    5. 7.5 Debug Navigator und Aufrufstapel
    6. 7.6 Breakpoint Navigator
    7. 7.7 Haltepunkt mit Bedingungen
    8. 7.8 Benachrichtigung durch Haltepunkte
    9. 7.9 Makros für die Fehlersuche
    10. 7.10 Ein paar Fragen ...
  12. Kapitel 8: Robuste Anwendungen und automatisierte Tests
    1. 8.1 Methoden mit Parametern
    2. 8.2 Kommentare für Methoden
    3. 8.3 Assertions – Die Behauptungen
    4. 8.4 Kompilieren als Debug oder Release
    5. 8.5 Automatisiertes Testen mit Xcode
    6. 8.6 Überprüfung der Kontrollen
    7. 8.7 Umstellungen auf Modern Objective-C
    8. 8.8 Der Umgang mit unbenutzten Variablen
    9. 8.9 Ein paar Fragen...
  13. Kapitel 9: Vererbung, Kategorien und Protokolle
    1. 9.1 Das Erbe der Klasse Person
    2. 9.2 Erweiterungen der abgeleiteten Klasse
    3. 9.3 Methoden überschreiben
    4. 9.4 Die Initialisierung von abgeleiteten Klassen
    5. 9.5 Protokolle
    6. 9.6 BOOL – Ein besonderer Datentyp
    7. 9.7 Das NSCoding Protokoll
    8. 9.8 Serialisierung leicht gemacht
    9. 9.9 Die Abhängigkeit von Zeichenketten
    10. 9.10 Kategorien
    11. 9.11 Ein paar Fragen ...
  14. Kapitel 10: Array & Dictionary
    1. 10.1 Personenliste – Ein Array mit Personen
    2. 10.2 NSMutableArray
    3. 10.3 Schnell durchs Array mit Fast Enumeration
    4. 10.4 Vielfältige Manipulationen
    5. 10.5 Arrays sortieren
    6. 10.6 Ein Array mit NSNumber
    7. 10.7 Dictionaries – Die schnellen Wörterbücher
    8. 10.8 Ein paar Fragen ...
  15. Teil II: Cocoa-Anwendungen
  16. Kapitel 11: Hello Cocoa World – eine Cocoa-Anwendung
    1. 11.1 MVC: Model – View – Controller
    2. 11.2 Nib-Dateien und der Interface Builder
    3. 11.3 Projektvorlage: Cocoa Application
    4. 11.4 Dock und Outline View
    5. 11.5 Inspector und Bibliothek
    6. 11.6 Arbeiten mit dem Interface Builder
    7. 11.7 Der Controller
    8. 11.8 Action und Outlet
    9. 11.9 Zurück zum Interface Builder
    10. 11.10 Das war es jetzt schon?
    11. 11.11 awakeFromNib – Die Oberfläche wacht auf
    12. 11.12 Ein paar Fragen ...
  17. Kapitel 12: Datenein- und -ausgabe auf der grafischen Oberfläche
    1. 12.1 Die Klasse AppDelegate
    2. 12.2 Eine grafische Oberfläche entsteht
    3. 12.3 Der Size Inspector
    4. 12.4 Auftritt für den Assistenten
    5. 12.5 Ein GeometryCalculator für den Controller
    6. 12.6 Lazy Instantiation – Die Instanz kommt später
    7. 12.7 Es darf gerechnet werden
    8. 12.8 Zahlen formatieren mit dem NSNumberFormatter
    9. 12.9 Umgestalten durch Refactoring
    10. 12.10 EVA und MVC
    11. 12.11 Ein paar Fragen ...
  18. Kapitel 13: Hinter den Kulissen
    1. 13.1 Was verbirgt sich hinter IBAction und IBOutlet?
    2. 13.2 First Responder und Tab-Reihenfolge
    3. 13.3 Icons für die Anwendung
    4. 13.4 Das About-Fenster
    5. 13.5 Programmende und NSRunAlertPanel
    6. 13.6 Auf den Spuren der Anwendung
    7. 13.7 Ein Blick ins Bundle
    8. 13.8 Aufgeräumt wird zum Schluss
    9. 13.9 Ein paar Fragen ...
  19. Kapitel 14: Sprachausgabe und Delegation
    1. 14.1 SpeakEasy – Eine Anwendung lernt sprechen
    2. 14.2 Sprache ist asynchron
    3. 14.3 Delegation – Meine Nachrichten an dich
    4. 14.4 Sprachausgabe: Start und Stop
    5. 14.5 Viele Stimmen zur Auswahl
    6. 14.6 Voice Identifier – Eine Stimme wird identifiziert
    7. 14.7 Der NSPopUpButton in Aktion
    8. 14.8 Ein Delegate für die Anwendung
    9. 14.9 Ein paar Fragen ...
  20. Kapitel 15: Hallo Taxi!
    1. 15.1 Die Klasse TaxiFareCalculator
    2. 15.2 Die Methode calculateFare
    3. 15.3 Schieberegler – NSSlider
    4. 15.4 Nachricht mit Absender
    5. 15.5 Zu große Genauigkeit
    6. 15.6 Wer ist der Absender?
    7. 15.7 Kontrollkästchen
    8. 15.8 Eine Action für viele Steuerelemente
    9. 15.9 Schriftarten und formatierte Zahlen
    10. 15.10 Endspurt zum fertigen Programm
    11. 15.11 Ein paar Fragen ...
  21. Kapitel 16: Benutzereinstellungen und noch mehr Delegation
    1. 16.1 Am Anfang war das Protokoll
    2. 16.2 Kleine Änderungen erforderlich
    3. 16.3 Umsetzung eines eigenen Delegate
    4. 16.4 Zirkelverweise und schwache Verbindungen
    5. 16.5 Optionale Methoden
    6. 16.6 Benutzereinstellungen – NSUserDefaults
    7. 16.7 Speichern der Einstellungen
    8. 16.8 Property Liste und plist Editor
    9. 16.9 Das Laden der Einstellungen
    10. 16.10 Fehlt da nicht noch etwas?
    11. 16.11 Ein paar Fragen ...
  22. Kapitel 17: Datenquellen und Tabellen
    1. 17.1 Ein Controller für eine Tabelle
    2. 17.2 Daten für den Tabellen-Controller
    3. 17.3 Tabellen und Controller im Interface Builder
    4. 17.4 Spalten für die Tabelle
    5. 17.5 Die Datenquelle
    6. 17.6 Erste Schritte mit Autolayout
    7. 17.7 Ein paar Fragen ...
  23. Kapitel 18: Sortierte Tabellen mit Drag und Drop
    1. 18.1 Es darf sortiert werden
    2. 18.2 Geht es auch andersherum?
    3. 18.3 Und wo sind die Pfeile?
    4. 18.4 Drag und Drop
    5. 18.5 Bitte hier kräftig ziehen!
    6. 18.6 Sie dürfen ablegen!
    7. 18.7 Mehr Ordnung für die Klasse
    8. 18.8 Ein paar Fragen ...
  24. Teil III: iOS-Anwendungen für iPhone & Co
  25. Kapitel 19: iOS und Hello World
    1. 19.1 Action und Outlet auch für iOS
    2. 19.2 Der View im Interface Builder
    3. 19.3 viewDidLoad – Der View wurde geladen
    4. 19.4 Ein Icon für die App
    5. 19.5 Das Startbild
    6. 19.6 Von Xcode zum Gerät – Der Organizer
    7. 19.7 Ein paar Fragen ...
  26. Kapitel 20: Texteingaben und virtuelle Tastaturen
    1. 20.1 Textfelder und Tastaturtypen
    2. 20.2 Eingaben beenden: Keine einfache Aufgabe
    3. 20.3 Der Nächste bitte: Eine Eingabekette
    4. 20.4 Meldungen mit UIAlertView
    5. 20.5 Wollen Sie wirklich löschen?
    6. 20.6 Alles dreht sich – oder auch nicht!
    7. 20.7 Vom UIView zum UIControl
    8. 20.8 Ein paar Fragen ...
  27. Kapitel 21: Storyboards – Mit dem Drehbuch durch die App
    1. 21.1 Ein Storyboard mit zwei Ansichten
    2. 21.2 Segue
    3. 21.3 Der Lebenszyklus einer Szene
    4. 21.4 Storyboard mit Navigation
    5. 21.5 Eine Szene für die Farben
    6. 21.6 Ein Segue für den Controller
    7. 21.7 Methoden für den Übergang
    8. 21.8 Zurück per Delegate
    9. 21.9 Vorsicht mit Referenzen
    10. 21.10 Eine weitere Szene
    11. 21.11 Delegate und Protokoll
    12. 21.12 Eltern-Kind-Navigation
    13. 21.13 Ein paar Fragen ...
  28. Kapitel 22: CountryDB – Eine Länderdatenbank
    1. 22.1 Eine leere Anwendung
    2. 22.2 Die Klasse Country
    3. 22.3 Ein Array mit Länderinformationen
    4. 22.4 Ein Controller für die Tabellenansicht
    5. 22.5 Der View für die Detailansicht
    6. 22.6 Aus dem Objekt auf den View
    7. 22.7 Anzeigen der Detailansicht
    8. 22.8 Ein Titel für den View
    9. 22.9 Farbe für die Tabelle
    10. 22.10 Ein paar Fragen ...
  29. Kapitel 23: Tableisten-Navigation
    1. 23.1 Tableiste und Controller
    2. 23.2 Gibt es hier keinen Delegate?
    3. 23.3 Konfiguration der Schaltflächen
    4. 23.4 Ein Farbmischer mit Schiebereglern
    5. 23.5 Farben mit UIColor
    6. 23.6 Und jetzt als Hex
    7. 23.7 Eine Kategorie für UIColor
    8. 23.8 Ein paar Fragen ...
  30. Kapitel 24: Picker und Animation
    1. 24.1 Daten für den Picker
    2. 24.2 Wohin geht die Reise? Anzeige der Auswahl
    3. 24.3 Das Steuerelement UISegmentedControl
    4. 24.4 Ein View bekennt Farbe
    5. 24.5 Startvorbereitungen mit Autolayout
    6. 24.6 Es bewegt sich: Eine Animation
    7. 24.7 Alles so schön bunt
    8. 24.8 Ein paar Fragen ...
  31. Anhang A: Fragen und Antworten
    1. Kapitel 2: Durchstarten mit Xcode 5
    2. Kapitel 3: NSLog, Variablen und Format Specifier
    3. Kapitel 4: Klassen und Objekte
    4. Kapitel 5: Speicherverwaltung von Objekten
    5. Kapitel 6: Objective-C wird erwachsen
    6. Kapitel 7: Der Debugger
    7. Kapitel 8: Robuste Anwendungen und automatisierte Tests
    8. Kapitel 9: Vererbung, Kategorien und Protokolle
    9. Kapitel 10: Array und Dictionary
    10. Kapitel 11: Hello Cocoa World – eine Cocoa-Anwendung
    11. Kapitel 12: Geometry Calculator – ein kleiner Rechner
    12. Kapitel 13: Hinter den Kulissen
    13. Kapitel 14: Sprachausgabe und Delegation
    14. Kapitel 15: Hallo Taxi
    15. Kapitel 16: Benutzereinstellungen und noch mehr Delegation
    16. Kapitel 17: Datenquellen und Tabellen
    17. Kapitel 18: Sortierte Tabellen mit Drag und Drop
    18. Kapitel 19: iOS und Hello World
    19. Kapitel 20: Texteingaben und virtuelle Tastaturen
    20. Kapitel 21: Storyboards – Mit dem Drehbuch durch die App
    21. Kapitel 22: CountryDB – eine Länderdatenbank
    22. Kapitel 23: Tableisten-Navigation
    23. Kapitel 24: Picker und Animation
  32. Anhang B: Glossar
    1. Accessor-Methoden
    2. Automatic Reference Counting
    3. awakeFromNib
    4. Code Sense
    5. Convenience Allocator
    6. Debugger
    7. Delegate
    8. Eigenschaften
    9. Factory-Methode
    10. Forward Declaration
    11. Framework
    12. Haltepunkt
    13. Header
    14. Instanzvariable
    15. Interface Builder
    16. Lazy Instantiation
    17. MVC-Entwurfsmuster
    18. Nib-Datei
    19. NSObject
    20. Outlet
    21. Präprozessordirektive
    22. Protokoll
    23. Schema
    24. Selektor
    25. Storyboard
    26. Target
    27. Vererbung
    28. View
    29. View Controller
    30. viewDidLoad
    31. Xcode