Type Method


Dynamically provides an implementation for a given selector for an instance method.


+ (BOOL)resolveInstanceMethod:(SEL)sel;



The name of a selector to resolve.

Return Value

YES if the method was found and added to the receiver, otherwise NO.


This method and resolveClassMethod: allow you to dynamically provide an implementation for a given selector.

An Objective-C method is simply a C function that take at least two arguments—self and _cmd. Using the class_addMethod function, you can add a function to a class as a method. Given the following function:

void dynamicMethodIMP(id self, SEL _cmd)
    // implementation ....

you can use resolveInstanceMethod: to dynamically add it to a class as a method (called resolveThisMethodDynamically) like this:

+ (BOOL) resolveInstanceMethod:(SEL)aSEL
    if (aSEL == @selector(resolveThisMethodDynamically))
          class_addMethod([self class], aSEL, (IMP) dynamicMethodIMP, "v@:");
          return YES;
    return [super resolveInstanceMethod:aSel];

Special Considerations

This method is called before the Objective-C forwarding mechanism is invoked. If respondsToSelector: or instancesRespondToSelector: is invoked, the dynamic method resolver is given the opportunity to provide an IMP for the given selector first.

See Also

Dynamically Resolving Methods

+ resolveClassMethod:

Dynamically provides an implementation for a given selector for a class method.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software