鲜为人知的事实:现在可以在Xcode中暂停调试器中的通知中心,以了解注册了哪些对象来接收哪些通知:
(lldb) po NotificationCenter.default
<NSNotificationCenter:0x6040000d40b0>
Name, Object, Observer, Options
com.apple.accessibility.reduce.motion.status, 0x10b126190, 0x7fc795700140, 1001
com.apple.accessibility.asst.scanner.status, 0x10b126190, 0x7fc795700140, 1001
// ... etc. ...非常好,但是我如何从获取内存地址0x7fc795700140到学习它是什么对象?
编辑--我把这个问题留在这里,但我认为正确的答案是LLDB (Swift): Casting Raw Address into Usable Type展示的那种东西
发布于 2020-04-17 00:21:11
首先,我使用的LLDB命令。
(lldb) expr -l objc -O -- 0x600001582d00
<__NSArrayI 0x600001582d00>(
<UIStoryboardShowSegueTemplate: 0x600002c3e4c0>,
<UIStoryboardPresentationSegueTemplate: 0x600001582210>,
<UIStoryboardPresentationSegueTemplate: 0x600001582620>,
<UIStoryboardShowSegueTemplate: 0x600002c3f4c0>,
<UIStoryboardPresentationSegueTemplate: 0x6000015839d0>,
<UIStoryboardShowSegueTemplate: 0x600002c3d680>,
<UIStoryboardEmbedSegueTemplate: 0x600002c3dc40>
)对于Swift类的实例。
expr -l swift -O -- 对象-C类的实例。
expr -l objc -O --对于C类的实例。
expr -l c -O --现在解释一下。我有joy修复了1400个小狐猴的泄漏。iOS开发人员代码。在内存图形调试器中,我经常检查泄漏的对象,我所拥有的只是内存中对象的地址。这是在一个objects和Swift应用程序中,所以我们必须能够检查两种语言中的对象。在LLDB中,我必须在被检查的内存地址上指定变量的语言。这在Swift和Objective中有效。我上面提供的是针对Swift、Objective和C的示例输出和命令示例。
https://stackoverflow.com/questions/45463132
复制相似问题