
class Swizzle: NSObject {
override class func load() {
UIButton.xxx_swizzleSendAction()
}
} extension UIButton {
class func xxx_swizzleSendAction() {
struct xxx_swizzleToken {
static var onceToken : dispatch_once_t =
}
dispatch_once(&xxx_swizzleToken.onceToken, { () -> Void in
let cls : AnyClass! = UIButton.self
let originalSelector = Selector("sendAction:to:forEvent:")
let swizzledSelector = Selector("xxx_sendAction:to:forEvent:")
let originalMethod = class_getInstanceMethod(cls, originalSelector)
let swizzledMethod = class_getInstanceMethod(cls, swizzledSelector)
method_exchangeImplementations(originalMethod, swizzledMethod) })
}
public func xxx_sendAction(action : Selector, to : AnyObject!, forEvent : UIEvent!) {
struct xxx_buttonTapCount {
static var count : Int =
}
xxx_buttonTapCount.count +=
println(xxx_buttonTapCount.count)
xxx_sendAction(action, to: to, forEvent: forEvent)
} }