ios – 有没有办法断开所有按钮touchUpInside方法?
发布时间:2020-12-14 19:30:34 所属栏目:百科 来源:网络整理
导读:有时它会在您拥有非托管代码的项目时发生,因此您无法弄清楚如何解决一个简单的问题.在大多数情况下,调试器帮助我们从根本上开始,我只是想知道 xcode调试器有多强大.因为我使用了一些像OllyDbg这样的asm调试器,这些为我们提供了一个号码.断点的选项我使用的最
有时它会在您拥有非托管代码的项目时发生,因此您无法弄清楚如何解决一个简单的问题.在大多数情况下,调试器帮助我们从根本上开始,我只是想知道
xcode调试器有多强大.因为我使用了一些像OllyDbg这样的asm调试器,这些为我们提供了一个号码.断点的选项我使用的最多是点击事件或点击事件的断点.那么有没有办法在xcode项目上设置类似的断点?
解决方法
听起来你正在寻找一种方法来捕获任何时候UIButton被窃听.为此,我将设置一个符号断点.在“断点导航器”(?7)中,单击屏幕底部的加号,然后选择“添加符号断点”
在对话框中,将以下内容添加到“符号”字段: -[UIControl sendAction:to:forEvent:] 这比你要求的要多一点.除了UIButtons之外,它实际上会从很多东西中捕获所有事件.但是,我敢打赌,你可以让它满足你的需求.现在运行应用程序并点击一个按钮.当它到达断点时,调试器看起来与您可能习惯看到的正常堆栈跟踪略有不同,因为您将在没有源匹配符号的位置处遇到断点.使用一些命令,您可以破译相当数量的命令.例如,请参见下面的屏幕截图. 这就是我所做的,以及其中的一些含义.第一件事是跳过(F6)到下一个命令的开头(例如第12行),以确保正确填充传入变量的所有寄存器.从那里开始,我开始在寄存器中挖掘有趣的信息.在这个例子中,寄存器r15是调用对象(按钮!),r14,r12和rbx是参数(第4 – 7行).当寄存器中的值是指向对象的指针时,您可以像在“正常”堆栈帧中一样“打印对象”.例如.: (lldb) register read r15 r15 = 0x00007fc6f4a24510 (lldb) po 0x00007fc6f4a24510 <UIButton: 0x7fc6f4a24510; frame = (0 0; 414 100); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7fc6f4a247b0>> (lldb) po [[(UIButton *)0x00007fc6f4a24510 titleLabel] text] Done (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |