我在导航项中嵌入了UIBarButtonItem。它使用故事板定位,在运行时的某个时刻,它会消失。我发现它正在被解除分配。
我可以开始浏览我的代码,也许会搜索'myButton = nil',看看是否故意将某些内容弄清楚,例如。然后我决定找出是否有一种先进的调试技术可以用于这种情况。
我可以使用的一种方法是继承UIBarButtonItem并在dealloc中放置一个断点,以查看堆栈跟踪是否会提供关于谁对我的按钮进行nilling的任何有用的信息。
有没有人知道任何很酷的LLDB功能,或关键值观察技术或我可以为此类事情设置的一些符号断点?
应用程序不会崩溃,按钮只会在运行时的可预测点消失。
P.S。它可能很简单,我只是想找出你们可能会使用的调试技术。
答案 0 :(得分:0)
我认为按钮没有被取消分配。视图层次结构以不可见的方式更改。要检查它,请按该区域查看相关功能是否被触发。
如果要检查按钮是否已取消分配,可以通过对象分配探查器对应用程序进行概要分析。当条形按钮项目消失时,检查分析器。什么探查器显示持久列中的条形按钮项目计数将让您知道它是否存在。
其次,您可以使用Xcode视图层次结构功能。当栏按钮项目被禁用时打开它。如果它存在于视图层次结构中,则它必须在那里。