2012-03-29 13 views
0

Ich bin ziemlich neu in Objective-C und Kakao-Programmierung, so verstehe ich nicht wirklich das Konzept der App-Delegaten.Anwendung Delegat Verwendung

Wenn wir eine Cocoa-Anwendung erstellen, speichern wir unseren Code (Methoden, Aktionen, Steckdosen) in den App Delegate-Dateien oder erstellen wir eine neue Datei, die von dort als Controller und Code fungiert. Im Moment lege ich meinen gesamten Code in diese beiden Dateien, aber nach dem, was ich gelesen habe, ist es Ihr Ziel, zu versuchen, Ihre App-Delegierten-Dateien so schlank wie möglich zu machen.

Meine Frage ist: Was ist die Verwendung der App-Delegierten-Dateien?

Antwort

2

Apropos applicationDidFinishLaunching:: Es ist nur Ihre Anwendung Einstiegspunkt. Normalerweise erstellen Sie hier nur das Fenster und Ihren ersten ViewController oder Ihre Tabbar - Ihre Hauptstartschnittstellenklasse.

Alle anderen Delegierten Methoden der NSApplicationDelegate haben natürlich andere Funktionen. Die meisten von ihnen sind der Punkt, wo Sie auf den Zustand der App reagieren. Geöffnet/Geschlossen/Backgrounded/Reopened etc.

Aber Sie sollten wahrscheinlich die Programmieranleitungen in der iPhone-Dokumentation betrachten. Es gibt viele Informationen darüber, wie Sie Ihre Objc-Projekte strukturieren können. Z.B. schau mal hier: Start Developing iOS Apps Today

Oder wenn Ihr für OSX Apps suchen, schauen Sie hier:

1) Your First Mac App
2) Mac App Programming Guide

Es gibt auch eine Reihe von Sample code.

+0

Haben Sie Unterlagen für Desktop-Anwendungen (nicht iphone)? – Cubia

+0

aktualisierte meine Antwort. – calimarkus

+0

Vielen Dank. Sehr geschätzt! – Cubia

1

Der App-Delegat ist ein Handler-Speicherort zum Behandeln von Ereignissen, die in der Anwendung auftreten. Dinge wie offen und nah. Es hängt auch die ganze Zeit, die die Anwendung ausgeführt wird, und Sie können die Singleton-Instanz an jedem Punkt greifen, indem Sie [[NSApplication sharedApplication] delegate] tun.

Dies ist praktisch, um Objekte zwischen Controllern zu übergeben und als Router für Ereignisse zu dienen. Sie können auch einige Daten auf dem Delegaten speichern, wenn Sie in verschiedenen Teilen des Codes Änderungen daran vornehmen müssen.

Dies alles funktioniert gut für einfache Anwendungen, aber wenn die Dinge komplexer werden, müssen Sie eine gewisse Aufteilung der Verantwortlichkeiten haben. Das AppDelegate sollte eigentlich nur für Aktionen verantwortlich sein, die in der Anwendung selbst und nicht in einer anderen Ansicht oder einem Controller ausgeführt werden. Den gesamten/den meisten Code in das AppDeligate zu schreiben, ist sicherlich eine schlechte Übung und führt zu schrecklichem Code, da die Dinge komplexer werden und gepflegt werden müssen.

+0

Danke, dass du mir geholfen hast, Dinge zu klären :) – Cubia