HUDU

Objective-C und Cocoa

eBook
€ 31,99
Print-Ausgabe € 39,90
 
epub eBook
Sofort lieferbar (Download)
November 2012

Beschreibung

Beschreibung

Das Grundlagenbuch zur Programmierung unter Apples Mac OS X führt in die Arbeit mit Objective-C und Cocoa ein. Amin Negm-Awad hat in der aktuellen Neuauflage die jüngsten Änderungen (z.B. @-Literals, ARC, Implementation-Ivars, Ordered-Sets) eingearbeitet und geht auf Xcode 4 ein. Das Buch ist auch zu früheren OS-X-Versionen kompatibel.

Inhaltsverzeichnis

1;Vorwort zur dritten Auflage;5 2;Übersicht;9 3;Inhaltsverzeichnis;10 4;1 Einführung;19 4.1;Die Sprache und das Framework;20 4.1.1;Objective- ;20 4.1.1.1;Nachrichten;22 4.1.1.2;Objekte;22 4.1.1.3;Klassen und Klassenobjekte;24 4.1.1.4;Ableitung und Vererbung;28 4.1.1.5;Überschreiben und Polymorphie;29 4.1.1.6;Erweiterung oder Spezialisierung;31 4.1.1.7;Delegieren: alternative Spezialisierungen;33 4.1.2; C ;34 4.1.3; und Cocoa;36 4.1.3.1;Cocoa als Library;37 4.1.3.2;Cocoa als Umgebung;37 4.2;Xcode Developer-Tools;38 4.2.1;Installation der Developer-Tools;38 4.2.2;Xcode Integrated Developer Envirement;38 4.2.3;Compiler, Linker und Build;39 4.2.4;Debugger;45 4.3;Zusammenfassung und Ausblick;45 5;2 Umrechner Die erste Applikation;47 5.1;Xcode und das Projekt;48 5.1.1;Projekt anlegen;49 5.1.2;Die Bereiche des Projektfensters;52 5.1.3;Die Symbolleiste;53 5.1.4;Die Navigatoren;55 5.1.4.1;Der Projektnavigator;55 5.1.4.2;Symbolnavigator;59 5.1.4.3;Search-Navigator;60 5.1.4.4;Sonstige;61 5.2;Xib-Editor: das User-Interface;61 5.2.1;Die Objektliste;62 5.2.1.1;Placeholder;63 5.2.1.2;Objects;64 5.2.2;Die Library im Interface Builder;65 5.2.3;Der Inspector für die Einstellungen;68 5.3;Outlets, Actions und Targets;71 5.3.1;Der Button als Anfang allen Übels;71 5.3.2;Die Klasse Controller, ;73 5.3.3; und das Instanzobjekt;77 5.3.4;Outlets: Verbindungen zum User-Interface;79 5.3.4.1;Outlet graphisch erzeugen;81 5.3.4.2;Outlet selbst programmieren;84 5.3.4.3;Letztes Textfeld;88 5.3.4.4;Outlets kontrollieren;88 5.3.5;Action-Target: Verbindungen vom User-Interface;89 5.3.5.1;Manuell: Action schreiben und Target setzen;89 5.3.5.2;Automatisch Methode erzeugen lassen und setzen;92 5.3.5.3;Action kontrollieren;93 5.3.6;Konsole;93 5.4;Source-Editor: erste Schritte des Programmierens;95 5.4.1;Nachrichten Wir beginnen zu sprechen;95 5.4.2;Variablen und Returnwerte Fragen und Antworten;97 5.4.3;Dokumentation und Quick-Help;99 5.4.3.1;Vollständige Dokumentation;99 5.4.3.2;Kurzdokumentation;101 5.4
.4;Fehleranzeige;103 5.4.5;Lesen Denken Schreiben ;104 5.5;Der Debugger;106 5.5.1;Breakpoints;106 5.5.2;Angezeigte Informationen;107 5.5.2.1;Editor;107 5.5.2.2;Debugger;108 5.5.2.3;Navigationsleiste;109 5.5.3;Durchlaufen;110 5.6;Das letzte Drittel: Das Model;111 5.6.1;Amins next top model: äußere Ansichten ;111 5.6.2; und innere Werte ;118 5.6.2.1;Modelbeschreibung und -editor;119 5.6.3;Verbindungen schaffen;122 5.7;Zusammenfassung und Ausblick;137 6;3 Objective-C;139 6.1;Kleinkram;143 6.1.1;Typen;143 6.1.1.1;Einfache Datentypen;144 6.1.1.2;Strukturen;145 6.1.1.3;C-Arrays;150 6.1.1.4;Zeiger;151 6.1.1.5;Objektvariablen;155 6.1.2;Objektarten;161 6.1.2.1;Klassen- und Instanzobjekte;161 6.1.2.2;Entitäten und Container;162 6.1.2.3;Swinger-Club für Objekte Attribute und Beziehungen;162 6.1.3;Mathematische Operationen;165 6.1.4;Kontrollstrukturen;167 6.1.4.1;Verzweigungen;168 6.1.4.2;Schleifen;171 6.1.4.3;Bedingungen;176 6.1.5;Ausführungseinheiten;179 6.1.5.1;Blöcke;179 6.1.5.2;Funktionen;180 6.1.5.3;Methoden;184 6.1.5.4;Closures (Objective-C-Blocks);188 6.1.5.5;Konzept;188 6.1.5.6;Syntax im Einzelnen;193 6.1.5.7;Praktische Anwendung in Cocoa;196 6.2;Klasse;196 6.2.1;Interface (Beschreibung);197 6.2.1.1;Die Klasse und ihre Basisklasse;198 6.2.1.2;Instanzvariablen;200 6.2.1.3;Eigenschaften (Declared-Propertys);200 6.2.1.4;Methodenliste;205 6.2.2;Class-Continuation;206 6.2.2.1;Möglichkeiten;207 6.2.2.2;Zweck;207 6.2.3;Implementierung (Funktionalität);209 6.2.3.1;Eigenschaften;210 6.2.3.2;Weitere Methoden;211 6.2.4;Verwendung;212 6.2.4.1;Erzeugung einer Instanz;212 6.2.4.2;Benutzen der Instanz;214 6.2.5;Instanzvariablen;215 6.2.6;copy und strong (und weak);217 6.3;Eine Subklasse als Spezialisierung;223 6.4;Eine Subklasse als Erweiterung;227 6.5;Kategorien;233 6.5.1;Erweiterung;234 6.5.2;Strukturierung;237 6.5.3;Kapselung;238 6.5.4;Informelle Protokolle;238 6.6;Protokolle;238 6.6.1;Definition;239 6.6.2;Übernahme in Klassen;240 6.6.3;Verwendung;242 6.6.3.1;Required-Methoden;242
6.6.3.2;Optional-Methoden;242 6.6.3.3;Protokolltypisierung;244 6.6.3.4;Protokollabfrage;246 6.7;Zusammenfassung;247 7;4 Foundation;249 7.1;Objekterzeugung;250 7.1.1;Allokation;250 7.1.2;Initialisierung;251 7.1.2.1;Designated-Initializer;251 7.1.2.2;Secondary-Initializer;256 7.1.2.3;Ererbte Initialisierer;257 7.1.2.4;Zusammenfassung;262 7.1.2.5;Initialisierung von Klassenobjekten;262 7.1.3;Convenience-Allocators und +new;263 7.1.4;Kopien: Objektorientiertes Plagiieren;269 7.1.4.1;Kopien, Identität, Dasselbe, Das Gleiche;269 7.1.4.2;Implementierung;272 7.1.4.3;Convenience-Copy;279 7.1.4.4;Gleichheit;279 7.1.5;Zusammenfassung;281 7.2;Speicherverwaltung;281 7.2.1;Das Konzept anhand von Automatic Reference Counting;282 7.2.1.1;Vernetztes Denken;283 7.2.1.2;Anker;288 7.2.1.3;Löschwelle;294 7.2.1.4;Weak Zyklen und der Softie unter den Settern;295 7.2.1.5;Autorelease-Pools und die Rückgabe von Objekten;305 7.2.1.6;Zusammenfassung;318 7.2.2;Manuelle Speicherverwaltung;319 7.2.2.1;Grundregel;319 7.2.2.2;Lokale Variablen;319 7.2.2.3;Accessoren und Instanzvariablen;323 7.2.2.4;Rückgabe;325 7.2.2.5;Objektvernichtung;327 7.2.2.6;Zusammenfassung;327 7.2.3;Automatische vs. Manuelle Speicherverwaltung;327 7.3;Container;328 7.3.1;Arten von Containern;329 7.3.2;Skalare Container;331 7.3.2.1;Formatter;333 7.3.2.2;Werte;335 7.3.2.3;Zahlen;336 7.3.2.4;Dezimalbrüche;337 7.3.2.5;Zeichenketten;343 7.3.2.6;Date und Calendar;349 7.3.2.7;Binäre Daten;350 7.3.3;Collections;350 7.3.3.1;Elemente und Speicherverwaltung;351 7.3.3.2;Erzeugung;354 7.3.3.3;Keine Collection, leere Collection und leeres Element;355 7.3.3.4;Abzählung ;356 7.3.3.5;Sets;359 7.3.3.6;Counted-Sets;360 7.3.3.7;Ordered-Sets;361 7.3.3.8;Arrays;361 7.3.3.9;NSDictionary;363 7.3.4;Property Lists;365 7.3.4.1;Struktur;366 7.3.4.2;Umwandlung von Entitäten in Property-Lists;367 7.3.4.3;XML-Property-Lists;368 7.4;Zusammenfassung;369 8;5 Die Viewschicht;371 8.1;Grundlagen;372 8.1.1;Responder als Basisklasse;372 8.1.1.1;Fenster;374 8.1.1
.2;Views;374 8.1.1.3;Die Aufgabenteilung zwischen Fenstern und Views;374 8.1.2;Views und Cells;380 8.1.3;Nib-Files;384 8.2;Menüs;387 8.3;Fenster;389 8.3.1;Wichtige Eigenschaften;390 8.3.2;Delegate;393 8.3.3;Sheets ;396 8.3.3.1;Synchrone Alerts;397 8.3.3.2;Asynchrone Alerts;398 8.3.3.3;Synchrone, applikationsmodale Fenster;400 8.3.3.4;Asynchrone, fensterlokale Sheets;404 8.3.4;Drawers;407 8.3.5;Toolbars;408 8.3.5.1;Toolbar-Struktur;408 8.3.5.2;Eigene Toolbar erstellen;411 8.4;Views und Controls;416 8.4.1;Wichtige Eigenschaften;416 8.4.2;Autolayout;419 8.4.2.1;Constraints;421 8.4.2.2;Ungleichungssystem;423 8.4.2.3;Nutzung aus dem Code;425 8.4.3;Buttons;426 8.4.3.1;Aktionsbuttons;427 8.4.3.2;Umschaltbuttons;427 8.4.4;Imageviews;429 8.4.5;Boxen;430 8.4.6;Tabviews;430 8.4.7;Splitviews;433 8.4.8;Progressindicator;434 8.4.9;Textfelder;439 8.4.10;Pop-up-Buttons;440 8.4.11;Scrollviews;442 8.4.12;Tableviews;444 8.4.12.1;Struktur;444 8.4.12.2;Content-Mode;445 8.4.12.3;Data-Source;447 8.4.12.4;Sourceview;447 8.4.12.5;Selection;449 8.4.13;Outlineviews;449 8.4.14;Weitere Views und Eigenschaften;449 8.5;Animation;450 8.6;Zusammenfassung;453 9;6 Die Controllerschicht;455 9.1;Bindings-Controller, KVC, KVV und KVO;456 9.1.1;Grundlagen;456 9.1.1.1;Key und Key-Path;456 9.1.1.2;Key-Value-Coding;458 9.1.1.3;Key-Value-Validation;458 9.1.1.4;Key-Value-Observation;458 9.1.1.5;Cocoa-Bindings (Key-Value-Bindings);459 9.1.2;Key-Value-Coding;460 9.1.2.1;Funktionsweise;461 9.1.2.2;Einfache Accessoren (Getter und Setter);463 9.1.2.3;Ungeordnete To-many-Relationships (Sets);465 9.1.2.4;Geordnete To-many-Relationships (Arrays, Ordered-Sets);471 9.1.2.5;Zusammenfassung:;472 9.1.2.6;Fehlermethoden;472 9.1.3;Key-Value-Validation;473 9.1.4;Key-Value-Observing;474 9.1.5;Bindings;476 9.1.5.1;Bindbare Eigenschaften;476 9.1.5.2;Bindings-Optionen;479 9.1.5.3;Value-Transformer;480 9.1.6;Der Arraycontroller;481 9.1.6.1;Einstellungen im Attributes-Inspector;481 9.1.6.2;Observierbare Eigenschaften;483 9.1.7;Der
Tree-Controller;486 9.1.8;Der Dictionary-Controller;487 9.1.9;Der Defaults-Controller und Voreinstellungen;489 9.1.9.1;Defaultssystem;489 9.1.9.2;Registrationdefaults und Application-Delegate;491 9.1.10;Komplexe Bindings;497 9.1.10.1;Bindingsketten;497 9.1.10.2;Selektions-Bindings;503 9.2;Windowcontroller und Viewcontroller;508 9.2.1;Aufgabe und Stellung;508 9.2.2;Fenstertyp;511 9.2.3;Dokumentenwindowcontroller;513 9.2.3.1;Der eigene Windowcontroller;513 9.2.3.2;Document-Bindings;515 9.2.3.3;Outlets;517 9.2.3.4;Actions und First Responder;517 9.2.4;Infowindowcontroller;520 9.2.5;Inspector-Windowcontroller;529 9.2.5.1;Erstellen;530 9.2.5.2;Synchronisation;533 9.2.6;Viewcontroller;538 9.3;Notifications;539 9.3.1;Lokale Notifications;540 9.3.1.1;Notification definieren;541 9.3.1.2;Notification auslösen;543 9.3.1.3;Notification fangen;544 9.3.2;Als Observer anmelden;545 9.3.2.1;Notifications und Delegating;547 9.3.3;Distributed-Notifications;548 9.4;Data-Sources;550 9.4.1;Bindings einreißen und Data-Source vorbereiten;550 9.4.2;Die Urgründe;552 9.4.3;Manuelle Synchronisation der Auswahl;557 9.4.4;Personen zum Outlineview hinzufügen;560 9.4.5;Gruppen und ihre Elemente;563 9.4.6;Ansichten tauschen;565 9.4.7;Manuelle Synchronisation der Attribute;577 9.4.8;Key-Loop;578 9.5;Drag-and-drop-Controller, Pasteboards;579 9.5.1;Dragging;580 9.5.1.1;Dropping;582 9.6;Zusammenfassung;586 10;7 Die Modelschicht;587 10.1;Grundlagen;588 10.1.1;Inhalt;588 10.1.1.1;Informationen;588 10.1.1.2;Fähigkeiten;590 10.1.2;Modellierung;591 10.1.2.1;Problemstellung;591 10.1.2.2;Modellierungsregeln;593 10.2;Dokumente eigener Klassen;599 10.2.1;Modellimplementierung;600 10.2.2;Anbindung;601 10.2.3;Laden und Speichern;602 10.2.3.1;Methodensatz;603 10.2.3.2;Serialisierung mit Codern;603 10.2.3.3;Serialisieren;605 10.2.3.4;Deserialisierung;612 10.2.3.5;Handwerksregeln;613 10.2.4;Undo ;614 10.2.4.1;Undo-Manager;614 10.2.4.2;Undo-Stack;615 10.2.4.3;Undo implementieren;619 10.2.4.4;Undo deaktivieren ;624 1
0.2.4.5;Handwerksregeln;625 10.3;Core Data;625 10.3.1;Grundlagen;626 10.3.1.1;Aufgabe von Core Data;626 10.3.1.2;Was ist Core Data?;626 10.3.1.3;Aufbau;629 10.3.2;Modelbeschreibung ;632 10.3.2.1;Entitätsbeschreibung;633 10.3.2.2;Eigenschaftsbeschreibungen;634 10.3.2.3;Klassen und Entitäten;641 10.3.3;Instanzverwaltung;642 10.3.3.1;Objekt-ID;642 10.3.3.2;Instanzerzeugung;643 10.3.3.3;Speicherverwaltung;645 10.3.3.4;Instanzvernichtung;645 10.3.3.5;Abweichungen zwischen Store und Kontext;647 10.3.4;Anpassung;647 10.3.4.1;Accessoren;648 10.3.4.2;Klasseneigenschaften;653 10.3.4.3;Eigene Attributtypen;656 10.3.5;Fetch-Requests;660 10.3.6;Prädikate;663 10.3.6.1;Eigenschaft (Key);664 10.3.6.2;Wert;664 10.3.6.3;Operator;665 10.3.6.4;To-many-Beziehungen und Aggregate;666 10.3.6.5;Prädikaterzeugung;667 10.3.7;Sortierung;668 10.3.7.1;Möglichkeiten der Sortierung;668 10.3.7.2;Sort-Deskriptoren;668 10.3.7.3;Reihenfolgeeigenschaft im Model;669 10.3.7.4;Reihenfolgeeigenschaft per Drag-and-Drop und die Objekt-ID;675 10.4;Applikationsmodelle;683 10.4.1;Zugriff;683 10.4.2;Ohne Core-Data-Support;683 10.4.2.1;Im Code;684 10.4.2.2;Im Nib;685 10.4.3;Mit Core-Data-Support;685 10.4.4;Undo-Management;685 10.4.5;Laden und Speichern;686 10.5;Versions und Autosave;687 10.6;Zusammenfassung;687 11;8 Xcode & Co;689 11.1;Workspace, Projekt und Target;690 11.1.1;Übersicht;690 11.1.2;Workspaces;690 11.1.2.1;Workspace erzeugen;691 11.1.2.2;Projekte erzeugen;691 11.1.2.3;Mit Workspace arbeiten;692 11.1.3;Projekt;695 11.1.4;Target;695 11.1.5;Schemes;696 11.1.6;Configurations;697 11.2;Projektdateien;697 11.2.1;Datei hinzufügen;697 11.2.2;Dateien finden;700 11.3;Target;701 11.3.1;Summary;702 11.3.2;Info;703 11.3.3;Build-Settings;706 11.3.4;Build-Phasen;707 11.4;Lokalisierung;709 11.4.1;Ressourcen und Lokalisierung;710 11.4.1.1;Lokalisierte Dateien;710 11.4.1.2;Auswahl der Lokalisierung;711 11.4.1.3;Lokalisierung hinzufügen;711 11.4.1.4;Lokalisierung im Code;715 11.4.2;Das Über-Fenster;717 11.5;Texteditor
und Code-Generierung;718 11.5.1;Texteditor und Preferences;718 11.5.1.1;Textvervollständigung;718 11.5.1.2;Code-Folding ;719 11.5.1.3;Navigation;720 11.5.1.4;Kodierung;720 11.5.1.5;Bezeichnernutzung;721 11.5.1.6;Einrückung;721 11.5.1.7;Key Bindings;721 11.5.2;Code-Generierung;721 11.5.2.1;Core-Data;722 11.5.2.2;Interface Builder;722 11.5.3;Refaktorierung;722 11.5.3.1;Umbenennen;722 11.5.3.2;Auslagern;723 11.5.3.3;Klassenhierarchie;724 11.5.3.4;Konvertierung zu ARC;725 11.6;Codeanalyse;725 11.7;Die erste eigene Applikation;726 11.7.1;Leistungsumfang;726 11.7.2;Arbeitsabläufe;727 11.7.3;User-Interface;727 11.7.4;Model;727 11.7.5;Controller aufbauen;728 11.7.6;Testen und Fehlersuche;728 11.7.7;Anwendung publizieren;728 11.7.7.1;Archive-Build ;729 11.7.7.2;Archive;729 11.8;Zusammenfassung;729 12;Index;731


Portrait

Amin Negm-Awad arbeitet als Rechtsanwalt und Dozent für IT- und Medienrecht. Darüber hinaus ist er als Dozent und Consultant für Softwareentwicklung mit Objective-C tätig. Früher entwickelte er Hard- und Software im Bereich der Embedded Controller, seine Begeisterung für den Mac begann mit Mac OS X 10.1.

Pressestimmen

Mit dieser Auflage '...ist Negm-Awad ein guter Wurf gelungen, er hat ein ausgezeichnetes Einsteigerbuch zur Mac-Programmierung geliefert.' (c't 2009, Heft 8)
EAN: 9783944165936
Untertitel: Band 1: Grundlagen.
Verlag: SmartBooks
Erscheinungsdatum: November 2012
Seitenanzahl: 752 Seiten
Format: epub eBook
Kopierschutz: Wasserzeichen
Es gibt zu diesem Artikel noch keine Bewertungen.Kundenbewertung schreiben