Aus den Dokumenten, die ich gelesen habe, erstellt @dynamic die Accessor-Methoden zur Laufzeit, während @synthesize die Accessoren zur Build-Zeit erstellt.
Also lassen Sie mich raten: @dynamic spart etwas Speicher und Code wird in Speicherseiten kleiner gehalten? oder was? und welche anderen Unterschiede gibt es zwischen diesen?
Wäre es in Ordnung zu sagen: "Es ist immer eine gute Idee, @dynamic statt @synthesize zu verwenden"? Ich meine ... wenn das wirklich Erinnerung speichert, warum nicht?
Aber ich denke @dynamic hat etwas Nachteil gegenüber @synthesize, sonst würde jeder @dynamic benutzen. Also, was sind die Nachteile?
Nein. Dynamische Eigenschaften werden nicht automatisch generiert. @dynamic
Eigenschaftsmarker zeigt dem Compiler an, dass Sie den Accessor und die Setter irgendwie bereitstellen:
Aus Ziel-C Programmiersprache :
@dynamic
Mit dem Schlüsselwort
@dynamic
teilen Sie dem Compiler mit, dass Sie den von einer Eigenschaft implizierten API-Vertrag erfüllen, indem Sie Methodenimplementierungen direkt oder zur Laufzeit unter Verwendung anderer Mechanismen wie dynamisches Laden von Code oder dynamische Methodenauflösung bereitstellen. p>
Nein, @dynamic
sagt, dass die Implementierungen zur Laufzeit bereitgestellt werden. @synthesize
weist den Compiler an, die Implementierungen für Sie zu erstellen. Sie würden @dynamic
beispielsweise mit Core Data verwenden, die zur Laufzeit Eigenschaftenimplementierungen generiert. Wenn Sie keinen der beiden verwenden, nimmt der Compiler an, dass Sie die Implementierungen bereitstellen werden.
Tags und Links objective-c iphone cocoa cocoa-touch