2015-03-10 20 views
7

Gibt es eine Möglichkeit, die Retain-Anzahl von Objekten schnell an Xcode's Console abzumelden? Wenn nicht, was ist die nächstbeste Alternative?Swift: Wie man sich ausmeldet Anzahl der Objekte behalten?

+5

Warum Sie retainCount brauchen? –

+0

Nur als Lehrmittel. Ich möchte den Schülern zeigen, wie stark sich die Zyklen halten, und einfach über die gesamte ARC-Sache sprechen. – sirab333

+0

Lesen Sie diese, bevor Sie die RetainCount-Methode verwenden. [10 (http://winntousretaincount.com), [2] (http://stackoverflow.com/questions/4636146/when-to-use-retaincount), [3] (http: //www.friday. com/bbum/2011/12/18/retaincount-is-useless /), [4] (http://stackoverflow.com/questions/5784084/calling-rentaincount-consolided-harmful), [5 Apples Erklärung zur Methode retainCount ] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/#//apple_ref/occ/intfm/NSObject/retainCount) –

Antwort

1

Normalerweise würden Sie Instrumente verwenden, um die Retain-Anzahl zu erhalten. Aber wie hier beantwortet ist die Methode retainCount.

How to get the reference count of an NSObject?

+2

'retainCount' ist in Swift nicht gut. Und ansonsten - siehe die Dokumentation unter "Spezielle Überlegungen": "Diese Methode hat keinen Wert beim Debugging von Speicherverwaltungsproblemen. Weil eine beliebige Anzahl von Framework-Objekten ein Objekt behalten hat, um Referenzen darauf zu halten ..." Wie würde tust du es in Instrumenten? – sirab333

+0

Erwarte nicht, dass retainCount die genauen Werte angibt. Siehe die Links, die ich meinem Kommentar angehängt habe (Fragenabschnitt) –

15

mit CFGetRetainCount Funktion

Beispiel:

print(CFGetRetainCount(object)) 

Lesen Sie mehr hier: https://developer.apple.com/reference/corefoundation/1521288-cfgetretaincount

hilfreich hoffen

+0

Beachten Sie auch, dass CFRetainCount in Swift auch Referenzen vom Typ "unbekannt" zählt, die schwache Referenzen enthalten können. Ich lernte dies, indem ich den Laufzeit 'CFGetRetainCount'-Wert mit dem Xcode" View Memory Graph Hierarchy "Tool verweise. Mehr hier: https://koenig-media.raywenderlich.com/uploads/2017/08/visual_memory_debugger.png –

+0

Danke! Müssen Sie Foundation dafür importieren. – Segev