簡體   English   中英

即使我確定它們存在,儀器中也不會出現泄漏

[英]No leaks appearing in Instruments, even though I'm sure they exist

我正在檢查儀器中的泄漏,並且已設置為每秒檢查一次,但是沒有泄漏出現。

我確定我的應用程序中必須有一些東西,是否有任何東西可以阻止這些東西出現? 有什么好方法可以創建泄漏,以便可以測試儀器中是否確實出現泄漏?

謝謝!

創建泄漏很容易:

id someObject = [[NSObject alloc] init];
someObject = nil;

將類似的代碼放到您的應用中,您肯定會在Instruments中看到泄漏。

如果分配了對象但不再引用該對象,則只會使用工具查找泄漏。 “泄漏”的另一種類型是保留對您不想要的內容的引用。 這通常發生在哈希表或字典之類的集合中,其中鍵/值對保留在程序員遺忘的集合中。

我非常確定,正如clemahieu所假設的那樣,您真正看到的是保留過度的對象-您認為您已經釋放了它們,但它們仍然保留着。

一個快速的健全性檢查是在dealloc中設置斷點,並查看您是否真正希望釋放的類。

您還可以使用內存跟蹤工具(而不是泄漏)來查看仍然有哪些內存-只需確保選擇“創建並仍然存在”選項,以檢查出仍然有哪些對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM