Yes! In Objective-C, function pointers are called selectors. If you have a method defined like this:
- (void)myFunctionWithObject:(NSObject*)obj otherObject:(NSNumber*)obj2
{
}
The selector is declared like this:
@selector(myFunctionWithObject:otherObject:)
To perform a selector on an object, you can use:
[object performSelector:@selector(myFunction)];
or
[object performSelector:@selector(myFunctionTakingParameter:) withObject: o];
The selector data type is particularly useful for threads and timers, where you can dispatch a thread and provide it a selector to the message you'd like it to invoke. If you need to create an array of selectors (or a dispatch table), or if you need to invoke selectors with multiple parameters, you can use the NSInvocation class. It provides a wrapper for a selector and allows you to specify actual arguments.
You should keep in mind that Objective-C is already based on a fully dynamic method dispatch table. It sounds like maintaining function pointers using selectors will work fine for you if you just need a reference to a function, though.