• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Forwarding/Forward Invocation

sashs

James Grieve
Registriert
23.03.10
Beiträge
133
Hallo,

ich programmiere schon seit mehreren Jahren mit Java. Ich wollte mir jetzt aber auch mal Objective-C anschauen.

Jetzt bin ich auf Forward Invocation gestoßen. Ich denke verstanden zu haben, wie es funktioniert, allerdings wüsste ich momentan keinen praktischen Einsatz dafür.

Es wäre nett, wenn mir jemand, vielleicht anhand eines kleinen Beispiels, den praktischen Nutzen erklären könnte.

Gruß

Sascha
 
An NSInvocation is an Objective-C message rendered static, that is, it is an action turned into an object. NSInvocation objects are used to store and forward messages between objects and between applications, primarily by NSTimer objects and the distributed objects system.

Voller Text: NSInvocation Class Reference - OS X Reference Library

Sollte wohl reichen :) Also das sagt aus, dass du sowas äusserst selten brauchen/antreffen wirst. Wird nur gebraucht, um mit Objekten in anderen Programmen zu kommunizieren und sonst ist das mehr eine Cocoa interne Sache.

Gruss ppocket
 
Danke dir.

Dann hab ich mal noch eine Frage. Dummerweise ist es mir etwas zu spät eingefallen. :-)
Ein praktischer Nutzen wäre es ja Aspekt-Orientierte Programmierung umzusetzen. Es sei denn es geht auch anders.

Eine kleine Erläuterung zu AOP. Im Java-Bereich gibt es mehrere Frameworks mit denen man sowas umsetzen kann. Mindestens bei einem werden sogenannte DynamicProxies verwendet. Das heißt, es wird ein Proxy um ein anderes Object drum herum gebaut. Sobald eine Methode bei dem gewollten Objekt aufgerufen wird, wird automatisch eine Methode beim Proxy aufgerufen. Diese führt erst die gewollte Methode aus. So kann man die Methodenaufrufe und die Rückgabewerte mitloggen und sogar den Rückgabewert ändern.

Theoretisch wäre es also so bei Objective-C möglich, vorausgesetzt es gibt keine andere Möglichkeit. :-)

Gruß

Sascha
 
Und wo ist da das Fragezeichen? sorry, ich kann dir nicht ganz folgen. Willst du wissen, ob es AOP bei Objective-C gibt?

Gruss ppocket
 
Ok, etwas unklar ausgedrückt. :-)
Gibt es AOP bei ObjC oder müsste man das so umsetzen.

Gruß

Sascha