Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Praxisbeispiel Cocoa Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Re-usable Content in 3D und Simulationssystemen Prof.

Ähnliche Präsentationen


Präsentation zum Thema: "Praxisbeispiel Cocoa Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Re-usable Content in 3D und Simulationssystemen Prof."—  Präsentation transkript:

1 Praxisbeispiel Cocoa Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller, SS 2012 Referent: Jan Moritz Kohl, 3. April 2012

2 Wiederholung MVC (Model-View-Controller) Daten - Oberfläche - Verknüpfung

3 Wiederholung Hauptobjekt = NSApplication Keine Ableitung zur Erstellung individueller Klassen sondern Delegation (Zusätzliche Klassen) bzw. Erweiterung durch Kategorien Bei Eingabe des Benutzers schickt NSApplication Nachricht an Delegate Delegate kann jedes Objekt sein, welches Delegation Methoden implementiert

4 Klassen MyClass - (void)windowDidMove:(NSNotification*)notification { //... Methode: windowDidMove / windowShouldClose

5 Instanz von MyClass MyClass *myDelegate = [[MyClass alloc] init]; [window setDelegate: myDelegate]; Unter NSWindow: if([[self delegate] { [[self delegate] windowDidMove:notification]; }

6 Beispiel für Delegation

7 Informelles NSObject(NSWindowNotifications) - (void)windowDidMove:(NSNotification *)notification; //... other methods Häufig verwendet für Delegates

8 Formelles - (void)windowDidMove:(NSNotification *)notification; //... other MyDelegate

9 MyObject // Sendet MyNotification Nachricht wenn aufgerufen - (void)notify { [[NSNotificationCenter defaultCenter] object:self]; } // Gibt Nachricht aus wenn MyNotification eingeht - (void)handleNotification:(NSNotification*)note { notified: note); MyObject *object = [[MyObject alloc] init]; // MyNotification events von allen Objekten erhalten [[NSNotificationCenter defaultCenter] addObserver:object object:nil]; // eine Notification erstellen [object notify];

10 Observer Losere Form der Interaktion Delegate ist fest an Objekt gebunden, Observer hat eher informativen Charakter Registriereung bei NotificationCenter

11 MyObject // Sendet MyNotification Nachricht wenn aufgerufen - (void)notify { [[NSNotificationCenter defaultCenter] object:self]; } // Gibt Nachricht aus wenn MyNotification eingeht - (void)handleNotification:(NSNotification*)note { notified: note); MyObject *object = [[MyObject alloc] init]; // MyNotification events von allen Objekten erhalten [[NSNotificationCenter defaultCenter] addObserver:object object:nil]; // eine Notification erstellen [object notify];

12 MyObject // Sendet MyNotification Nachricht wenn aufgerufen - (void)notify { [[NSNotificationCenter defaultCenter] object:self]; } // Gibt Nachricht aus wenn MyNotification eingeht - (void)handleNotification:(NSNotification*)note { notified: note); MyObject *object = [[MyObject alloc] init]; // MyNotification events von allen Objekten erhalten [[NSNotificationCenter defaultCenter] addObserver:object object:nil]; // eine Notification erstellen [object notify];

13 MyObject // Sendet MyNotification Nachricht wenn aufgerufen - (void)notify { [[NSNotificationCenter defaultCenter] object:self]; } // Gibt Nachricht aus wenn MyNotification eingeht - (void)handleNotification:(NSNotification*)note { notified: note); MyObject *object = [[MyObject alloc] init]; // MyNotification events von allen Objekten erhalten [[NSNotificationCenter defaultCenter] addObserver:object object:nil]; // eine Notification erstellen [object notify];

14 Quellen delegates-in-objective-c delegates-in-objective-c notification-example notification-example https://developer.apple.com/library/mac/#documentation/Co coa/Conceptual/CocoaFundamentals/CommunicatingWithObj ects/CommunicateWithObjects.html https://developer.apple.com/library/mac/#documentation/Co coa/Conceptual/CocoaFundamentals/CommunicatingWithObj ects/CommunicateWithObjects.html


Herunterladen ppt "Praxisbeispiel Cocoa Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Re-usable Content in 3D und Simulationssystemen Prof."

Ähnliche Präsentationen


Google-Anzeigen