title: How to add swizzling method to UIApplication using Swift?
body: <p>I have a code below trying to use swizzling method to UIApplication methods. But the methods not getting called. Meanwhile, I'm trying to add this code into a framework or a private pod.</p>
  
  <pre><code>extension UIApplication {
  public override class func initialize() {
      struct Static {
          static var token: dispatch_once_t = 0
      }
  
      struct SwizzlingSelector {
          let original:Selector
          let swizzled:Selector
      }
  
      // make sure this isn't a subclass
      if self !== UIApplication.self {
          return
      }
  
      dispatch_once(&amp;Static.token) {
          let selectors = [
              SwizzlingSelector(
                  original: Selector("application:didFinishLaunchingWithOptions:"),
                  swizzled: Selector("custome_application:didFinishLaunchingWithOptions:")
              ),
              SwizzlingSelector(
                  original: Selector("applicationDidEnterBackground:"),
                  swizzled: Selector("custom_applicationDidEnterBackground:")
              )
          ]
  
          for selector in selectors {
              let originalMethod = class_getInstanceMethod(self, selector.original)
              let swizzledMethod = class_getInstanceMethod(self, selector.swizzled)
  
              let didAddMethod = class_addMethod(self, selector.original, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod))
  
              if didAddMethod {
                  class_replaceMethod(self, selector.swizzled, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod))
              } else {
                  method_exchangeImplementations(originalMethod, swizzledMethod);
              }
          }
      }
  }
  
  // MARK: - Method Swizzling
  public func custome_application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -&gt; Bool {
      print("is here")
      return true
  }
  
  func custom_applicationDidEnterBackground(application: UIApplication) {
      print("is herer")
  }
  }
  </code></pre>