Ich frage mich, wo der Code beginnt Ausführung (wie, warum tut eine NSView Unterklasse ausführen und zeichnen, ohne ich ausdrücklich nenne es ?) Und wenn ich nicht soll meine Hauptschleife in int-Stick main() wohin geht es?
In einem xcode-Projekt haben Sie eine Hauptversion.m-Datei, die die Funktion 'int main' enthält. Sie werden den Code, der die NSView-Zeichnung explizit aufruft, nicht wirklich finden. Dieser Code ist tief in einem iPhone- oder Mac OS X-Framework versteckt. Sie müssen wissen, dass eine Ereignisschleife tief in Ihrem 'int main' versteckt ist, die nach Änderungen sucht, um zu wissen, wann Sie Ihre Ansicht aktualisieren müssen. Sie müssen nicht wissen, wo diese Ereignisschleife ist, es ist keine nützliche Information, da Sie Methoden überschreiben oder Delegaten erstellen und zuweisen können, die in diesem Fall Dinge tun können.
Um eine bessere Antwort zu erhalten, müssen Sie erklären, was Sie mit einer 'Hauptschleife' meinen, die Sie in die Funktion 'int main' einfügen wollten.
Es ist einfach komisch für mich, eine kleine Erfahrung in C++ zu bekommen. Es sieht unnatürlich aus, dass die Hauptfunktion so leer wäre.
Sie können eine Milliarde Codezeilen in eine Funktion kapseln und in 'int main' einfügen. Lassen Sie sich nicht von einer Hauptleitung täuschen, die nur ein paar Zeilen hat, das ist absichtlich getan. Eine gute Programmierung lehrt uns, den Code in speziellen Containern zu halten, damit er gut organisiert ist. Apple entschied sich für die „echte“ Startpunkt ihrer iPhone-Apps in dieser Zeile Code in der Datei main.m zu machen:
int retVal = UIApplicationMain(argc, argv, nil, @"SillyAppDelegate");
Von diesem ein Stück Code, einem Delegierten App gestartet wird und wird nicht steuere die Hauptfunktion zurück, bis sie fertig ist.
Ok, cool. Diese Verbindung ist genau das, wonach ich gesucht habe. Eine kurze Frage, wenn Sie Zeit haben: Wie kann ich Ereignisse zur Ereigniswarteschlange hinzufügen, die nicht von Benutzereingaben stammen, sondern vom Start der Anwendung? Und natürlich vielen Dank. Das ist ein sehr sehr hilfreicher Leitfaden. –
Kein Problem. Tatsächlich werden Sie wahrscheinlich die Ereignisse verwenden wollen, die bereits beim Start der Anwendung verwendet werden. Für die Mac-Programmierung sollte die Datei Main Nib (Xib) über einen Delegaten verfügen, der NSApplicationDelegate entspricht. Dieser Delegat hat zwei Selektoren, die beim Start von applicationWillFinishLaunching aufgerufen werden: und applicationDidFinishLaunching :. Verwenden Sie diese, um Code vorzufixieren, der beim Start der App passieren soll. In den Vorlagen für XCode erstellt das Projekt normalerweise eine AppDelegate-Klasse, die für Sie einen Stub von applicationDidFinishLaunch enthält. –
Sie kommen überall für mich durch. Das ist genau das, was ich wissen wollte. Dankesehr! –