| 

.NET C# Java Javascript Exception

1
Properties sind eine tolle Sache in Objective-C. Mit @synthesize kann man diese auch schnell generieren lassen. Kann mir jemand erklären was es mit @dynamic auf sich hat. In einschlägen Artikeln liest man immer nur "da kommt Code hinzu". Wann kommt der Code und wie genau hinzu. Core Data setzt das ein, aber erklärt wird es trotzdem nicht.
06.09.2011
Gast
13 4
1 Antwort
3
Für ein Property muss man i.d.R. getter und setter Methoden implementieren. @synthesize erzeugt dir dafür generische Versionen, in Abhängigkeit von den verwendeten Attributen des Property (z.B. copy, retain etc.)
@dynamic heißt nur, dass diese Getter und setter an anderer Stelle definiert sind und der Compiler sich nicht beschweren soll, dass die Implementierung fehlt. Das ist z.B. der Fall, wenn diese Methoden in einer Basisklasse definiert sind.
06.09.2011
puls200 3,8k 7
Genau so eine Antwort finde ich an vielen Stellen. Mich würde halt interessieren wie es funktioniert. Kommt das während des Compile-Vergangs dann dazu ?
– Gast 06.09.2011
1
Ich vermute @dynamic ist zunächst einmal nur so etwas wie eine forward deklaration, bzw. eine "extern" gekennzeichnete Funktion. Es findet als m.E. kein Link-Vorgang statt, die Funktion wird zur Laufzeit aufgelöst, siehe auch hier: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtDynamicResolution.html
(da steht allerdings nicht wie es implementiert ist, ich tippe auf C Funktionszeiger)
puls200 06.09.2011

Stelle deine Mobile-Frage jetzt!