title: Objective-C method_exchangeImplementations is not working
body: <p>I am trying to use the objc runtime library to swap method implementations. I have this simple example but it doesn't seem to work (the implementations are not swapped). What have I forgotten?</p>
  
  <pre><code>    #import "AppDelegate.h"
      #import "MainViewController.h"
      #import &lt;objc/runtime.h&gt;
  
      @implementation AppDelegate
  
      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
      {
          //lowercase NSString Method
          Method originalMethod = class_getInstanceMethod([NSString class], @selector(lowercaseString));
          //uppercase NSString Method
          Method swappedMethod = class_getClassMethod([NSString class], @selector(uppercaseString));
          //swap em
          method_exchangeImplementations(swappedMethod, originalMethod);
  
          NSLog(@"%@",[@"test" lowercaseString]); //OUTPUT: test !!
          ...
          return YES;
      }
  </code></pre>