是否可以跟蹤我的Objective-C物件的分配和釋放? 例如,如果我有一个Book類,我想跟蹤Book型別物件的所有分配和取消分配.我可以跟蹤所有預設的SKD類,例如UIViewController,UIwindow,UIView,NSDictionary等,但是我也想跟蹤从定義的類建立的物件。
最新回復
- 5月前1 #
相似問題
- 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
訊息及其對物件保留計數的影响.如果要查看任何這些事件的呼叫堆棧,可以打開視窗右侧的擴充套件详细資訊面板: