如何在Allocations或Leaks工具中查找Objective-C Blocks

9

第一次提问,请不要对我有偏见...

对于标准对象以及我创建的子类,可以很容易地在Allocations或Leaks Instruments中找到特定对象。例如,如果我想查看名为ViewController的UIViewController子类,我可以在Allocations工具中滚动查看存活对象数量的增加和减少。同样,在Leaks Instrument中列出了泄漏的对象。我甚至可以搜索特定对象。

然而,当寻找Objective-C blocks时,我不确定该查找什么。我注意到在Leaks Instrument中,泄漏的块会显示为__NSMallocBlock。但是,在使用Allocations Instrument进行搜索时,搜索__NSMallocBlock并没有显示出来。

有什么办法可以在Allocations Instrument中查找Objective-C blocks吗?

非常感谢

1个回答

3

目前至少在 Xcode 4.2.1 中,Blocks(使用大写/粗体表示 (^))在内存分配工具中只显示为一般的 Malloc 内存块(表示内存块的记号为小写,不加粗)。

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

当然,相同大小的 Malloc 块很可能还有很多。如果按负责调用者排序,则可以帮助过滤它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接