Objective-C und Cocoa
eBook - ePub
Verfügbar bis 22 Sep |Weitere Informationen

Objective-C und Cocoa

Band 1: Grundlagen

  1. 752 Seiten
  2. German
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub
Verfügbar bis 22 Sep |Weitere Informationen

Objective-C und Cocoa

Band 1: Grundlagen

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

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.

Häufig gestellte Fragen

Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ja, du hast Zugang zu Objective-C und Cocoa von Amin Negm-Awad im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Computer Science & Programming. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

Jahr
2012
ISBN
9783944165936

Kapitel 1 Einführung

Image
Gleich herein: Ich habe mir das allgemein übliche Herumgerede am Anfang eines Lehrbuches gespart. Sie sollen hier einen Überblick über die verschiedenen Elemente erhalten, die Sie zur Programmierung erlernen müssen, damit Sie erst einmal eine Grundstruktur des Wissens haben.
Sie haben es als Programmierer mit zahlreichen neuen Dingen zu tun. Das verwirrt häufig und führt zu Missverständnissen. Meist sind es nur Begriffsverwechslungen, die nicht wirklich schlimm sind. Wenn Sie dann aber im Internet nachforschen wollen oder Fragen in Foren stellen, ist es schwierig, an die richtige Information zu kommen. Daher hier erst einmal die Grundstruktur und wesentliche Gedanken:
Jeder Handwerker hat zwei Dinge in seiner Werkstatt: das Material, das er bearbeitet, und die Werkzeuge, mit denen er es bearbeitet. Und Programmieren ist viel, viel Handwerksarbeit. Daher will ich mit Ihnen zunächst einen kleinen Rundgang durch die von Ihnen neu erworbene Werkstatt machen.
Das Material, die Programmiersprache »Objective-C« und das Framework »Cocoa« bespreche ich als Erstes, wobei ich ganz abstrakt bleibe, also nur die Grundkonzepte vorstelle.
Danach geht es an die Aufgabengebiete der Werkzeuge, der sogenannten Developer-Tools.

1.1 Die Sprache und das Framework

Computer werden mit Programmiersprachen programmiert. Die Programmiersprachen stellen also das Material dar, aus dem wir später unser Programm bauen. Aber bei modernen Programmiersprachen verhält es sich so, dass sie gleichermaßen nur eine leere Hülle bilden. Inhaltliche Funktionalität gibt erst das »Framework«, eine Art Grabbelkiste vorgefertigter Elemente. Man kann also vereinfachend die Programmiersprache Objective-C als »Grammatik« und das Framework Cocoa als »Vokabular« bezeichnen. Dabei können Sie an der Programmiersprache nichts ändern. Ihre Programmiertätigkeit liegt vielmehr darin, das Vokabular ständig zu erweitern.
Der Buchtitel »Objective-C und Cocoa« vermittelt dabei eine Zweiteilung. In Wahrheit geht es aber um drei Komponenten:

1.1.1 Objective- ...

Die Programmiersprache, mit der wir hier programmieren werden, nennt sich »Objective-C«. Das steht ja auch auf dem Buchdeckel. Daher hier ein paar einleitende Worte zur Sprache und ihren Konzepten:
Bei Objective-C handelt es sich um eine sogenannte objektorientierte Sprache. Die Technologie bezeichnet man als »objekt-orientierte Programmierung« (OOP). Da der Begriff eine ganze Zeit ein Modewort war, ist er leider versaubeutelt worden. Objective-C verdient jedoch den Namen OOP so, wie er ursprünglich von Alan Kay Ende der 70er-Jahre erfunden wurde, als dieser die Programmiersprache Smalltalk-80 entwickelte, den Vorläufer von Objective-C.
Kay arbeitete am Xerox Palo Alto Research Center (Xerox-PARC). Richtig, Xerox-PARC, das war das Forschungsinstitut, von dem auch Apple die ersten Ideen für eine graphische Benutzeroberfläche bekam. (Später arbeitete übrigens Kay eine Zeit lang für Apple.) Und diese Idee der graphischen Benutzeroberfläche revolutionierte nicht nur die Bedienung von Computern, sondern auch ihre Programmierung. Denn für diese neue Art des User-Interfaces waren bisherige Programmiersprachen unbequem. Um das zu verstehen, muss man sich erinnern (wenn man alt genug ist) oder lernen, wie man damals mit Computern arbeitete:
Grundsätzlich gab das Programm dem Benutzer in einem Raster vor, was wann zu tun war. Wir schreiben gleich ein Umrechnungsprogramm. Eine Sitzung mit einem solchen Programm hätte damals vermutlich wie folgt ausgesehen:
Geben Sie den Ausgangswert ein: 3[Enter]
Geben Sie den Umrechnungsfaktor ein: 2.54[Enter]
Das Ergebnis ist 7,62
Möchten Sie noch eine Umrechnung vornehmen (j/n):n[Enter]
Hier werden also 3 Zoll in 7,62 cm umgerechnet. Der Punkt ist, dass das Programm vorgibt, wann was getan wird: Ausgangswert eingeben — Umrechnungsfaktor eingeben — Ergebnis berechnen und ausgeben — Ende des Programms abfragen. Das Programm hat also gewissermaßen vier Arbeitsschritte, die im festen Raster abgearbeitet wurden.
Image
Eine moderne Anwendung legt Sie nicht fest.
Stellen Sie sich mal eine Anwendung für OS X vor: Hier gäbe es zwei Felder zur Eingabe der Werte (Ausgangswert und Umrechnungsfaktor), einen Button oder einen Menüeintrag Umrechnen und einen Menüeintrag Beenden. Und für Sie wäre es völlig klar, dass Sie jeden dieser Arbeitsschritte in beliebiger Reihenfolge ausführen können. So könnten Sie etwa den Umrechnungsfaktor 2,54 vor dem Ausgangswert eingeben. Sie könnten jederzeit das Programm beenden. Natürlich würden Sie ganz häufig beim zweiten Mal nur noch den Ausgangswert eingeben und auf Umrechnen klicken, da sich der Umrechnungsfaktor nicht ändert, wenn Sie etwa eine ganze Zahlenkolonne von Zoll nach cm umrechnen. Wieso jedes Mal den Umrechnungsfaktor neu eingeben? Dann wäre also die Reihenfolge der Arbeitsschritte wieder eine andere.
Lange Rede, kurzer Sinn: Mit der Erfindung der graphischen Benutzeroberfläche gibt nicht mehr das Programm dem Benutzer die Abfolge der Arbeitsschritte vor, sondern der Benutzer dem Programm. Die Leute, die die graphische Benutzeroberfläche entwickelten, nannten diesen ersten Lehrsatz: »Don’t mode me!«, übersetzt vielleicht: »Zwinge mich nicht dazu, eine bestimmte Abfolge einzuhalten.«
Und dies war für bisherige Programmiersprachen unbequem zu formulieren. Grundsätzlich denkt man beim Programmieren in Schritten, die nacheinander ausgeführt werden. Als Vergleich werden hier gerne Kochrezepte herangezogen: ein Arbeitsschritt nach dem anderen. Sie kämen ja auch nicht auf den Gedanken, zuerst die Pizza zu belegen und dann den Teig zu machen. Geht irgendwie nicht ...
Nachrichten
Versetzen wir uns also in Alan Keys Situation: Er kannte Programmiersprachen, die eine feste Abfolge von Arbeitsschritten wollten, und er hatte im Nebenzimmer Gestalter sitzen, die sagten, dass der Benutzer eine freie Abfolge von Arbeitsschritten will. Und er musste das irgendwie zusammenbringen.
Der erste Schritt zur Lösung besteht darin, die Aktionen des Benutzers (Drücken einer Taste, Klicken auf einen Button oder einen Menüeintrag usw.) als Nachricht des Benutzers an das Programm aufzufassen. Schauen Sie sich oben noch einmal den Ablauf eines »herkömmlichen« Programms an: Dort schickt das Programm Nachrichten an den Benutzer, was er jetzt zu tun habe. Jetzt machen wir es genau umgekehrt: Wir schicken Nachrichten an das Programm, was es zu tun habe. Also etwa: »Taste gedrückt: 3.«
Jeder dieser Nachrichten wird dann vom Programmierer ein Stück Programm zugeordnet. Also, es gibt etwa einen Programmteil, der ausgeführt wird, wenn eine Nachricht »Taste gedrückt: 3« eintrifft. Dann wird der Programmteil tasteGedrückt: ausgeführt.
Objekte
Jetzt gibt es da aber ein Problem: Wohin mit der 3? Die könnte ja im ersten Eingabefeld (Ausgangswert) oder im zweiten Eingabefeld (Umrechnungsfaktor) gedrückt worden sein. Und was soll mit der 3 geschehen? Sie muss ja irgendwie in den bereits bestehenden Text im Eingabefeld angehängt oder eingefügt werden oder was auch immer.
Image
Erhält ein Objekt eine Nachricht, so führt es ein kleines Stück Programm aus.
Hier kommt das zweite Konzept zum Tragen: Jede Nachricht hat einen Adressaten. Und diesen Adressaten nennt man »Objekt«. In unserem Beispiel wäre jedes Eingabefeld ein Objekt, eben ein Eingabefeldobjekt. Und so ein Objekt zeichnet sich durch zwei Dinge aus: Zum einen kann es aufgrund einer Nachricht ein bisschen Programm ausführen, wie bereits oben angedeutet. Man bezeichnet dieses bisschen Programm als »Methode«. In unserem Beispiel könnten die beiden Objekte also die Methode tasteGedrückt: ausführen. Dort wäre dann ein bisschen Programm, welches die Taste entgegennimmt und in den Text einfügt.
Das Zweite ist, dass ein Objekt Daten speichern kann. Nehmen Sie an, dass im ersten Eingabefeld schon der Wert 7 steht, im zweiten 2,5. Dies bedeutet, dass das erste EingabefeldObjekt den Wert 7 gespeichert hat und das zweite den Wert 2,5.
Wird jetzt eine Taste im ersten Eingabefeld gedrückt, so erhält dieses erste Eingabefeld-Objekt die Nachricht »tasteGedrückt: 3« und führt daraufhin seine Methode tasteGedrückt: aus. Daraufhin fragt es sich selbst, welcher Wert denn bisher gespeichert ist, und erkennt 7.
Image
Jedes Objekt kennt zudem seine Werte.
An diese 7 hängt es die 3 an und speichert 73 als neuen Wert.
Drückt der Benutzer demgegenüber die Taste, während der Cursor im zweiten Eingabefeld ist, so erhält das zweite Eingabefeld-Objekt die Nachricht »Taste gedrückt: 3« und führt die Methode tasteGedrückt: aus. Dort sieht die Methode, dass bisher der Wert 2,5 gespeichert ist, hängt eine 3 an und speichert das wieder als Wert 2,53.
Wieso machte das Kay auf diese Weise? Nun, wenn früher das Programm die Arbeitsschritte festlegte, konnte es keine Missverständnisse geben: Der erste Wert, der vom Benutzer eingegeben wurde, war der Ausgangswert. Der zweite Wert, der eingegeben wurde, der Umrechnungsfaktor. Die Zuordnung der Benutzereingabe zu den Speicherstellen des Programms war also fest. Jetzt jedoch ging das ja alles durcheinander. Und daher musste eine Zuordnung der Nachricht und des Speichers erfolgen.
Zusammengefasst: Ein Objekt ist eine Einheit, die Daten speichern kann und aufgrund einer Nachricht eine Operation (Methode) ausführt.
Klassen und Klassenobjekte
Ihre Arbeit als Programmierer besteht nun darin, diese Objekte zu programmieren. Nein, ganz richtig ist das nicht. Objective-C ist auch eine sogenannte klassenbasierte Programmiersprache.
Schauen wir noch einmal auf unser Programm, das wir gleich programmieren werd...

Inhaltsverzeichnis

  1. Cover
  2. Titel
  3. Impressum
  4. Zueignung
  5. Vorwort zur dritten Auflage
  6. Übersicht
  7. Inhaltsverzeichnis
  8. Kapitel 1 Einführung
  9. Kapitel 2 Umrechner – Die erste Applikation
  10. Kapitel 3 Objective-C
  11. Kapitel 4 Foundation
  12. Kapitel 5 Die Viewschicht
  13. Kapitel 6 Die Controllerschicht
  14. Kapitel 7 Die Modelschicht
  15. Kapitel 8 Xcode & Co
  16. Index