SEL sel = @selector(<#SOMETHING#>);
id (*IMP)(id, SEL, ...);
Access IMP for an instance of a specific class using:
+ (IMP)instanceMethodForSelector:(SEL)aSelector;
Ideally, you will cast the result of instanceMethodForSelector: to the exact typedef of the function you are calling so that the compiler can get the sig on the right.
when you have an object, SEL and IMP, then use IMP as a normal C function pointer.
IMP (= self), (= _cmd). 2 objc.