---
title: IMP
framework: objectivec
role: symbol
role_heading: Type Alias
path: objectivec/imp
---

# IMP

A pointer to the start of a method implementation.

## Declaration

```swift
typealias IMP = OpaquePointer
```

## Discussion

Discussion This data type is a pointer to the start of the function that implements the method. This function uses standard C calling conventions as implemented for the current CPU architecture. The first argument is a pointer to self (that is, the memory for the particular instance of this class, or, for a class method, a pointer to the metaclass). The second argument is the method selector. The method arguments follow.

## See Also

### Class-Definition Data Structures

- [Method](objectivec/method.md)
- [Ivar](objectivec/ivar.md)
- [Category](objectivec/category.md)
- [objc_property_t](objectivec/objc_property_t.md)
- [objc_method_description](objectivec/objc_method_description.md)
- [objc_cache](objectivec/objc_cache.md)
- [objc_property_attribute_t](objectivec/objc_property_attribute_t.md)
