Come è la direttiva del compilatore @encode implementato in Objective-C?
-
20-09-2019 - |
Domanda
Qualcuno può spiegare come @encode lavora per estrarre gli elementi di tipo di dati presenti in un determinato oggetto, struct, o tipo di dati in una definizione di tipo da utilizzare come un descrittore di classe per l'esecuzione dell'istanza?
O forse un puntatore ad alcune risorse per conoscere l'attuazione delle nuove direttive del preprocessore?
Soluzione 2
La formulazione della domanda originale potrebbe essere stato poco chiaro e penso che la mia menzione di una possibile implementazione coinvolge il preprocessore ha causato la conversazione per girare verso le sottigliezze di come compilatori di lavoro piuttosto che la domanda prevista.
Si prega di fare riferimento a questa domanda, che a mio avviso è molto più chiara di quello che sto cercando di imparare: Come faccio a implementare qualcosa di simile alla direttiva del compilatore Objective-C @encode () in ANSI C?
Altri suggerimenti
La direttiva @encode
analizza il tipo fornito e genera una stringa costante sulla base di tale tipo. La codifica di tutti i tipi C primitivi (comprese le versioni con e senza segno) e la id
Objective-C e tipi SEL
tutti hanno codifiche a singolo carattere, questi può essere trovato in <objc/runtime.h>
. i tipi più complessi quali struct
s e gli array hanno codifiche più grandi.
Maggiori informazioni sono disponibili nelle href="http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Conceptual/ObjCRuntimeGuide/ObjCRuntimeGuide.pdf" Objective-C runtime Guida Programmazione [PDF].