¿Cómo es la directiva del compilador @encode implementado en Objective-C?
-
20-09-2019 - |
Pregunta
Puede alguien explicar cómo funciona @encode para extraer los elementos de tipo de datos presentes en un determinado objeto, estructura o tipo de datos en una definición de tipo para ser utilizado como un descriptor de la clase para la instanciación?
O tal vez un puntero a algunos recursos para aprender acerca de la aplicación de las nuevas directivas del preprocesador?
Solución 2
La redacción de la pregunta original puede haber sido claro y creo que mi mención de una posible ejecución que implique el preprocesador causó la conversación a su vez hacia las sutilezas de cómo funcionan los compiladores en vez de la pregunta deseada.
Por favor hacer referencia a esta cuestión, que creo que es mucho más claro en cuanto a lo que estoy tratando de aprender: ¿Cómo iba a aplicar algo similar a la directiva de compilador de Objective-C @encode () en ANSI C?
Otros consejos
La directiva @encode
analiza el tipo previsto y genera una cadena constante en base a ese tipo. La codificación de todos los tipos C primitivos (incluyendo versiones con y sin signo) y la id
Objective-C y tipos SEL
todos tienen codificaciones de un solo carácter, éstos se pueden encontrar en <objc/runtime.h>
. tipos más complicados como struct
s y matrices tienen codificaciones más grandes.
Más información está disponible en las href="http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Conceptual/ObjCRuntimeGuide/ObjCRuntimeGuide.pdf" Objective-C en tiempo de ejecución Guía de programación [PDF].