是否可以跟踪我的Objective-C对象的分配和释放? 例如,如果我有一个Book类,我想跟踪Book类型对象的所有分配和取消分配.我可以跟踪所有默认的SKD类,例如UIViewController,UIwindow,UIView,NSDictionary等,但是我也想跟踪从定义的类创建的对象。
最新回答
- 2021-1-101 #
相关问题
- objective c:iOS模拟器游戏运行非常慢(低fps)iosobjectivecxcodespritekit2021-01-11 20:28
- iphone:如何在iOS的MKAnnotation中添加更多详细信息iphoneobjectiveciosmkannotation2021-01-12 01:29
- ios:将iPhone xib转换为iPad xib?iosiphonexcodeipadxib2021-01-10 07:28
- 如何使用目标C在iOS本地下载和保存文件?objectiveciosdownloadwgetlocalstorage2021-01-09 21:27
- iphone:iOS应用程序Display Recorder如何在不使用私有API的情况下记录屏幕?iphoneobjectivecios2021-01-09 22:31
分配工具可跟踪对象的生命周期.如果您使用"分配"模板,则将其配置为记录
malloc
和free
事件.您可能需要配置它以同时记录retain
,release
和autorelease
通过在分配工具设置中打开"记录参考计数"复选框来记录事件:(您无法在Instruments录制时切换此选项,默认情况下,它会在您选择模板后立即开始。)
运行后,您可以使用"分配">"统计信息">"对象摘要"视图找到对象,这是"详细信息"窗格(窗口的下半部分)的默认设置:
如果要查看在停止运行之前已被重新分配的对象,则需要将"分配寿命"设置从"已创建并仍然存在"(默认)更改为"已创建所有对象":
要查找特定类的对象,请先在窗口工具栏右端的"搜索"字段中键入类名称.然后,在列表视图的"类别"列中找到类名称,将鼠标悬停在其上,然后单击旁边的箭头.例如,我的应用程序有一个名为
Tile
的类 ,因此我进行了搜索,然后单击Tile
旁边的箭头 在列表视图中:现在,列表视图显示
Tile
的每个实例 . (请注意,您必须输入对象的实际类,而不是超类。输入NSObject
只会找到由[NSObject alloc]
创建的对象 ,而不是[Tile alloc]
创建的对象 .)通过单击该实例地址旁边的箭头,我可以查看任何特定实例的历史记录:在对象的详细视图中,我可以看到
malloc
和free
事件,由于我打开了"记录参考计数",因此我也可以看到retain
,release
和autorelease
消息及其对对象保留计数的影响.如果要查看任何这些事件的调用堆栈,可以打开窗口右侧的扩展详细信息面板: