2009-09-13 10 views
6

Beim Lesen Kakao Tutorials ich habe bemerkt, dass einige der Tutorials verwenden AppDelegate und einige AppController für IBActions definieren, die verschiedene Fenster öffnen, die Subklassen von NSWindowController verwenden.AppDelegate oder AppController

Gibt es eine Faustregel dafür?

Antwort

10

Es ist nur ein Klassenname. AppDelegate bedeutet, dass die Hauptaufgabe der Klasse als NSApplication-Delegierter besteht, während AppController eine breitere Palette von Verantwortlichkeiten zu implizieren scheint.

11

Ich erstelle eine Klasse, die nur meine App Delegate ist, und instanziiert meine Hauptsteuerung (in applicationWillFinishLaunching:) und gibt sie (in applicationWillTerminate:). Dann habe ich zwei Klassen mit klar definierten Verantwortlichkeiten: Mein Hauptcontroller ist der Besitzer des Hauptfensters und des Modells, und der App-Delegierte ist nichts anderes als der App-Delegierte (und im Rahmen dieser Pflichten der Besitzer des Hauptcontrollers)).

+2

Um zu verdeutlichen, bedeutet das, dass Sie Ihr Hauptfenster in eine separate Nib-Datei von MainMenu legen? –

+0

@Stephen: Ja; Der Hauptcontroller besitzt diese Nib und alles darin, was normalerweise ein Fenster und ein oder mehrere Array- und Objekt-Controller sind. –

+0

Mit dem Hauptcontroller meinen Sie den RootViewController ... Richtig? –