Logo

Objective-C, Xcode und Cocoa Tutorial


 

 

EIN TUTORIAL ZU OBJECTIVE-C, XCODE UND COCOA

 

Kapitel 1 - Fortsetzung

Anweisungsteil:
Was jetzt folgt ist die eigentliche Programmanweisung. Ich habe hier ausführlich und in vielen Worten dargestellt, dass die main Funktion das Programm startet, jetzt ist die Frage: was soll  eigentlich danach gemacht werden? Sie haben es dem Compiler gesagt, nämlich:

printf ("Hallo Welt");

Anweisungen müssen  innerhalb der geschwungenen Klammern {} geschehen. printf ist der Befehl, mit dem man einen Text am Bildschirm anzeigen lassen kann. Nach diesem Befehl erfolgt eine runde Klammer, der eigentliche Text wird dann in Anführungszeichen gesetzt. Die Klammer wieder schließen und jede Befehlszeile muss mit einem Semikolon ; abgeschlossen werden. Dann, wie schon erwähnt, beenden Sie das Programm mit der Anweisung:

return 0;

Damit senden Sie die geforderte int (Ganzzahl) von Null zurück. Wenn Sie sich zu diesem Zeitpunkt immer noch fragen, warum denn dieses blöde return, oder warum soll ich denn eine Null zurücksenden und wohin sende ich das überhaupt, dann hier nochmals eine abschließende Erklärung: main ist eine Funktion, und Funktionen sind nach einer bestimmten Syntax aufgebaut (siehe oben), da fährt der Zug drüber. Dieser Syntax muss auch die main Funktion gehorchen, obwohl Sie eine sehr spezielle Funktion ist, nämlich die Hauptfunktion, die in jedem ausführbaren Programm vorhanden sein muss und die Aufgabe hat, das Programm zu starten. Diese Syntax verlangt am Schluss nach einem Rückgabewert, der eine Ganzzahl (int; deshalb int main) sein muss. Ist einfach so, denn wenn Sie selbst Funktionen programmieren wollen, werden Sie diesen Rückgabewert für Ihre Funktion brauchen. Bei main wird dieser Rückgabewert nicht wirklich gebraucht und deshalb verwendet man diesen Rückgabewert einfach dazu dem Betriebssystem zu signalisieren: alles in Ordnung, keine Probleme, Programm Ende. Sie starten das Programm. Ihre Programmzeile „Hallo Welt“ wird angezeigt und außerdem wird Ihnen noch mitgeteilt:

Prog1 has exited with status 0.



Status 0 zeigt also an: Alles gut gelaufen. Das wäre geschafft, Puh! Um den Kreis zu schließen, gehen wir noch mal zurück zum Anfang und blicken auf die ursprüngliche main.m Datei, bevor Sie einen Teil davon gelöscht haben:

//
//  main.m
//  Prog1
//
//  Created by infobliss.at on 11.08.06.
//  Copyright __MyCompanyName__ 2006. All rights reserved.
//

#import <Cocoa/Cocoa.h>

int main(int argc, char *argv[])
{
    return NSApplicationMain(argc,  (const char **) argv);
}

Wie gesagt, ein jedes ausführbare Programm braucht eine main Funktion um das Programm starten zu können. In Xcode übernimmt diese Aufgabe diese main.m Datei. Hier wird mit dem Rückgabewert NSApplicationMain() aufgerufen, was zur Folge hat, das das Programm beim Starten die von Ihnen im Interface builder (wird später besprochen) geschaffene grafische Benutzeroberfläche geöffnet wird, und das Programm nun bereit ist Befehle vom Nutzer über diese Oberfläche zu empfangen (also z.B. das Drücken auf einen Button, das Eintippen eines Textes oder eine Zahl in ein leeres Feld,...usw). Sie können ja einmal versuchen ein neues Projekt anzulegen und dieses einfach durch Build an Go zu starten. Eine leere grafische Benutzeroberfläche wird als Fenster geöffnet. Wenn Sie dieses Programm beenden, wird wieder der von Ihnen bekannte Bildschirm angezeit und auch dieser zeigt dann wieder an: Prog1 has exited with staus 0. Also sendet auch NSApplicationMain() die geforderte Ganzzahl zurück, neben der Aufgabe die grafische Benuteroberfläche - welche im Interface Builder geschaffen wurde - zu öffnen.


weiter ---- Objective-C Index ---- Startseite----zurück


Das Inhaltsverzeichnis

EINSTIEG
KAPITEL 1: SCHRITT FÜR SCHRITT ZUM ERSTEN PROGRAMM
KAPITEL 2: OBJEKTE, KLASSEN, INSTANZEN UND METHODEN
KAPITEL 3: DIE VERSCHIEDENEN DATENTYPEN
KAPITEL 4: DIE PROGRAMMSCHLEIFEN
KAPITEL 5: ENTSCHEIDE DICH, ENTWEDER ODER....
KAPITEL 6: UND NOCHMALS KLASSEN
KAPITEL 7: VERERBUNG
KAPITEL 8: POLYMORPHISMUS, DYNASCHISCHE TYPISIERUNG UND DYNAMISCHES BINDEN
KAPITEL 9: NOCH MEHR DATENTYPEN UND VARIABLEN
KAPITEL 10: CATEGORIES, POSING AND PROTOCOL
KAPITEL 11: DER PRÄPROZESSOR

 

 

 

Links