博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift 统计项目中所有按钮的点击次数
阅读量:5110 次
发布时间:2019-06-13

本文共 1140 字,大约阅读时间需要 3 分钟。

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 = 0        }        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 = 0        }        xxx_buttonTapCount.count += 1        println(xxx_buttonTapCount.count)        xxx_sendAction(action, to: to, forEvent: forEvent)    }}

 

转载于:https://www.cnblogs.com/qzp2014/p/4313846.html

你可能感兴趣的文章
百度地图API,定位您的当前位置
查看>>
写一个jquery弹出层插件gbox,简单多功能...
查看>>
JavaScript的一些CheckData函数
查看>>
JSP 手记
查看>>
df和du显示的磁盘空间使用情况不一致的原因及处理
查看>>
[无关] 胡言乱语3
查看>>
Leetcode 29. Divide Two Integers
查看>>
thinkPHP--SQL查询
查看>>
winrar 弹窗处理
查看>>
关于IO流的抽象类
查看>>
2019.1.26
查看>>
伪静态的实现方法:IIS环境下配置
查看>>
Selenium-webdriver系列教程(三)————如何执行一段js脚本
查看>>
使用debussy完成自动仿真
查看>>
MyEclipse中Web项目的发布和运行
查看>>
【模板】最短路
查看>>
理解 Lua 的那些坑爹特性
查看>>
Windows WMIC命令使用详解(附实例)
查看>>
如何从Powerdesigner进行数据建模并生成SQL脚本
查看>>
发现微信支付bug
查看>>