【问题标题】:How to find Objective-C Blocks in Allocations or Leaks Instruments如何在分配或泄漏工具中找到 Objective-C 块
【发布时间】:2012-01-04 04:01:34
【问题描述】:

第一次提问,所以不要对着我...

对于我创建的标准对象和子类,在分配或泄漏工具中找到特定对象相当简单。即,如果我想查看 UIViewController 的子类 ViewController,我可以滚动查看 Allocations 工具并查看活动对象的数量增加和减少。同样,如果该对象被泄露,Leaks Instrument 会列出它。我什至可以搜索特定的对象。

但是,我不确定在寻找 Objective-C 块时要寻找什么。我在 Leaks Instrument 中注意到泄漏的块显示为 __NSMallocBlock。但是,在使用分配工具时,不会显示对 __NSMallocBlock 的搜索。

任何想法在分配工具中寻找什么来跟踪 Objective-C 块?

非常感谢

【问题讨论】:

    标签: ios macos objective-c-blocks grand-central-dispatch xcode-instruments


    【解决方案1】:

    似乎,至少从 Xcode 4.2.1 开始,Blocks(如 (^),我将使用大写/粗体)在分配工具中显示为一般Malloc 内存块(如内存块,小写而不是粗体)。

    所以Malloc NN Bytes 其中NN 是该 所需的字节数。通常是 Malloc 32 或 Malloc 64,具体取决于 Block 可能捕获的内容。

    当然,很可能还有很多其他相同大小的 Malloc 块。如果您按负责任的呼叫者排序,这可能会帮助您将它们过滤掉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      • 2012-02-10
      • 2011-11-24
      • 2011-12-23
      • 2023-04-06
      相关资源
      最近更新 更多