Dado que Objective-C es un superconjunto C, todas las sentencias específicas de Objective-C se convierten en sentencias C durante la compilación de un archivo .m (por el preprocesador, supongo). Entonces, por ejemplo, una expresión de mensaje como [receiver method]
se convierte en una llamada en la función de mensaje objc_msgSend(receiver, selector)
.¿Qué es una interfaz e implementación de clase Objective-C 2.0 convertida por GCC o Clang
Mi pregunta es: si tengo una definición de clase como esta:
@interface ClassA {
int var1;
float var2;
id var3;
}
-(void) method1;
-(int) method2: (int) num1;
@end
@implementation ClassA
-(void) method1 {
// Implementation of the method
}
-(int) method2: (int) num1 {
// Implementation of the method
}
@end
¿qué es lo convierte en el compilador (en la versión 2.0 de Objective-C)? ¿Se convierte en llamadas en funciones como objc_allocateClassPair()
, class_addIvar()
, class_addMethod()
y objc_registerClassPair()
, para crear la clase, agregar sus variables de instancia, agregar sus métodos y registrar la clase, respectivamente (para que la estructura de la clase esté realmente definida en tiempo de ejecución en lugar de siendo cargado como una estructura desde el archivo ejecutable)?