---
title: "method_exchangeImplementations(_:_:)"
framework: Objective-C Runtime
role: symbol
role_heading: Function
platforms: [iOS 2.0+, iPadOS 2.0+, Mac Catalyst 13.1+, macOS 10.5+, tvOS 9.0+, visionOS 1.0+, watchOS 1.0+]
path: "objectivec/method_exchangeimplementations(_:_:)"
---

# method_exchangeImplementations(_:_:)

Exchanges the implementations of two methods.

## Declaration

```swift
func method_exchangeImplementations(_ m1: Method, _ m2: Method)
```

## Discussion

Discussion This is an atomic version of the following: IMP imp1 = method_getImplementation(m1); IMP imp2 = method_getImplementation(m2); method_setImplementation(m1, imp2); method_setImplementation(m2, imp1);

## See Also

### Working with Methods

- [method_getName(_:)](objectivec/method_getname(_:).md)
- [method_getImplementation(_:)](objectivec/method_getimplementation(_:).md)
- [method_getTypeEncoding(_:)](objectivec/method_gettypeencoding(_:).md)
- [method_copyReturnType(_:)](objectivec/method_copyreturntype(_:).md)
- [method_copyArgumentType(_:_:)](objectivec/method_copyargumenttype(_:_:).md)
- [method_getReturnType(_:_:_:)](objectivec/method_getreturntype(_:_:_:).md)
- [method_getNumberOfArguments(_:)](objectivec/method_getnumberofarguments(_:).md)
- [method_getArgumentType(_:_:_:_:)](objectivec/method_getargumenttype(_:_:_:_:).md)
- [method_getDescription(_:)](objectivec/method_getdescription(_:).md)
- [method_setImplementation(_:_:)](objectivec/method_setimplementation(_:_:).md)
