2010-07-21 5 views
5

Ich bin ein erfahrener Entwickler, neue Mac Entwicklung, so dass ichCocoa-Anwendung Bootstrap Fragen

Es gibt immer noch Lücken, und es fällt mir schwer, gute Lesbarkeiten zu finden. Einige meiner Fragen sind unten aufgeführt. Diese sind sehr einfach/allgemein. Es muss ein kurzes, kurzes Dokument geben, in dem der grundlegende App-Bootstrap-Prozess und alle beteiligten Klassen beschrieben werden. Vielen Dank!

  • Der "delegieren", die von XCode enthält Instanzen von NSPersistentStoreCoordinator, NSManagedObjectModel und NSManagedObjectContext generiert wird - bitte Details?
  • Der Delegat wird als "@interface tests_AppDelegate: NSObject {" deklariert. Warum fehlt das Protokoll? Ich sehe Beispiele im Netz damit.
  • Ich sehe, dass der Anwendungsdelegate in Interface Builder instanziiert wird. Wo wird es in die NSApplication-Instanz übergeben?
+0

Ich bin verwirrt. Fragen Sie nach Mac-Entwicklung (Cocoa) oder iOS-Entwicklung (Cocoa Touch)? –

Antwort

1

Der "delegieren", die von XCode enthält Instanzen von NSPersistentStoreCoordinator, NSManagedObjectModel und NSManagedObjectContext generiert wird - bitte Details?

Das ist Core Data Zeug.

Der Delegat wird als "@interface tests_AppDelegate: NSObject {" deklariert. Warum fehlt das Protokoll? Ich sehe Beispiele im Netz damit.

Wahrscheinlich ein Versehen. AppKit hatte nicht immer ein formales NSApplicationDelegate-Protokoll. Es ist möglich, dass Apple die Vorlagen einfach nie aktualisiert hat. Sie könnten .

Ich sehe, dass die Anwendung Delegaten innerhalb Interface Builder instanziiert wird. Wo wird es in die NSApplication-Instanz übergeben?

Klicken Sie mit der rechten Maustaste auf das Anwendungsobjekt. Sie werden feststellen, dass der Ausgang delegate mit dem Delegate-Objekt verbunden ist.

1
  1. Das happenes nur, wenn Sie die Vorlage für eine Coredata-basierten Anwendungen verwenden. Lesen Sie Core Data basics.

  2. Das Protokoll wurde nur in OS X 10.6 formalisiert. Es war informell vorher getan. Solange der Delegat den in der Referenz erwähnten Selektor implementiert, wird er aufgerufen. Es ist nicht unbedingt notwendig, dass der Delegierte ein Protokoll explizit annimmt. Natürlich ist es besser, das zu tun. Siehe NSApplicationDelegate reference. Jeder Eintrag hat den Kommentar

    Verfügbar in Mac OS X v10.0 und höher. Verfügbar als Teil eines informellen Protokolls vor Mac OS X 10.6.

  3. Im Interface Builder Sie die Delegierten sehen auf die „Delegierten“ Ausgang des Eigentümers Datei zugeordnet: Rechtsklick auf die Datei-Management und Sie können sehen, dass. Die Nib-Dateien enthalten gefriergetrocknete Objekte, die im IB erstellt wurden. Wenn die App MainMenu.nib als Teil des Initialisierungsprozesses liest, weist es NSApp als Besitzer der Datei zu. Der App-Delegat, der in der NIB-Datei instanziiert und eingefroren wurde, wird NSApps zugewiesen. Lesen Sie Nib Files.