Sí! En Objective-C, los punteros a funciones se llaman selectores. Si usted tiene un método definido así:
- (void)myFunctionWithObject:(NSObject*)obj otherObject:(NSNumber*)obj2
{
}
El selector se declara así:
@selector(myFunctionWithObject:otherObject:)
Para realizar un selector en un objeto, que puede utilizar:
[object performSelector:@selector(myFunction)];
o
[object performSelector:@selector(myFunctionTakingParameter:) withObject: o];
La se El tipo de datos de lector es particularmente útil para subprocesos y temporizadores, donde puede enviar un hilo y proporcionarle un selector al mensaje que desea invocar. Si necesita crear una matriz de selectores (o una tabla de despacho), o si necesita invocar selectores con múltiples parámetros, puede usar la clase NSInvocation. Proporciona un contenedor para un selector y le permite especificar argumentos reales.
Debe tener en cuenta que Objective-C ya está basado en una tabla de envío de métodos totalmente dinámica. Parece que mantener los punteros de función usando selectores funcionará bien para ti si solo necesitas una referencia a una función.
¡Oh, claro! Jason, muchas gracias! –