Wie wird das @encode Compiler-Direktive in Objective-C umgesetzt?
-
20-09-2019 - |
Frage
Kann mir jemand erklären, wie @encode funktioniert die Datentyp-Elemente in einem gegebenen Objekt, Struktur oder Datentyp in einer Typdefinition zu extrahieren als Klassendeskriptors für Instanziierung verwendet werden?
Oder vielleicht ein Zeiger auf einige Ressourcen für das Lernen über die Implementierung neuer Präprozessordirektiven?
Lösung 2
Die Formulierung der ursprünglichen Frage unklar gewesen sein, und ich denke, dass meine Erwähnung einer möglichen Implementierung Einbeziehung der Präprozessor das Gespräch auf die Feinheiten drehen verursacht, wie Compiler arbeiten, anstatt die beabsichtigte Frage.
Bitte beachten sie diese Frage, die ich glaube, viel mehr klar, ist das, was ich versuche zu lernen: Wie würde ich etwas ähnliches implementieren auf das Objective-C @encode () Compiler-Direktive in ANSI C?
Andere Tipps
Die @encode
Richtlinie analysiert die vorgesehene Art und erzeugt einen konstanten String basierend auf diesem Typ. Die Codierung aller C primitive Typen (einschließlich und ohne Vorzeichen Versionen) und der Objective-C id
und SEL
Typen alle Einzelzeichenkodierungen haben, können diese in <objc/runtime.h>
finden. Kompliziertere Typen wie struct
s und Arrays haben größere Kodierungen.
Weitere Informationen finden Sie im Objective-C Runtime Programming Guide [PDF].