2012-04-05 9 views
1

Wie kann ich verfolgen, was mein Objekt behält? Ich habe ein Objekt, das nicht delloc ist -wie erwartet, wenn es aus einer Liste entfernt wird. Mein Verdacht ist, dass etwas die Retain-Zählung inkrementiert, also würde ich gerne wissen, wie ich im Idealfall jederzeit einen Platz schaffen kann, um in den Code einzubrechen, wenn die Retain-Anzahl eines Objekts erhöht wird.Tracking-Objekt behalten Anrufe

+3

Instrumente ...? – CodaFi

Antwort

2

Die bestmögliche Antwort ist die Verwendung von Instrumenten; Es wird den ganzen Tag gespeichert/gespeichert.

http://www.friday.com/bbum/2010/10/17/when-is-a-leak-not-a-leak-using-heapshot-analysis-to-find-undesirable-memory-growth/

Wenn verzweifelt, außer Kraft setzen -retain einfach return [super retain];. Das gibt Ihnen eine Methode, auf die Sie bequem einen Haltepunkt setzen können. Sie könnten dann Breakpoint-Befehle verwenden, um so etwas wie:

bt 
continue 

Das wird den Debugger verursachen den Backtrace von jedem Aufruf zu spucken, wenn sie getroffen, und dann weiter.