2015-03-10 23 views
7

Esiste un modo per disconnettere rapidamente il conteggio degli oggetti nella Console di Xcode? In caso contrario, qual è la prossima alternativa migliore?Swift: come disconnettere il conteggio degli oggetti?

+5

perché avete bisogno retainCount? –

+0

Proprio come uno strumento didattico. Voglio mostrare agli studenti come si verificano i forti cicli di ritenzione, e basta parlare dell'intera cosa ARC. – sirab333

+0

Leggere prima di usare il metodo 'retainCount'. [10 (http://whentouseretaincount.com), [2] (http://stackoverflow.com/questions/4636146/when-to-use-retaincount), [3] (http: //www.friday. com/bbum/2011/12/18/retaincount-is-utileless /), [4] (http://stackoverflow.com/questions/5784084/calling-retaincount-considered-harmful), [5 spiegazione di Apple sul metodo retainCount ] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/#//apple_ref/occ/intfm/NSObject/retainCount) –

risposta

1

In genere si utilizzano gli strumenti per ottenere il conteggio. Ma come è stato risposto qui il metodo è retainCount.

How to get the reference count of an NSObject?

+2

'retainCount' non è valido in Swift. Altrimenti, guarda i documenti in "Considerazioni speciali": "Questo metodo non ha alcun valore nel debugging dei problemi di gestione della memoria, perché qualsiasi numero di oggetti framework può aver conservato un oggetto per contenere riferimenti ad esso ..." Come sarebbe lo fai in strumenti? – sirab333

+0

Non aspettatevi che retainCount fornisca i valori esatti. Fai riferimento ai link che ho allegato al mio commento (sezione domanda) –

15

usando CFGetRetainCount funzione

Esempio:

print(CFGetRetainCount(object)) 

Read more here: https://developer.apple.com/reference/corefoundation/1521288-cfgetretaincount

spero utile

+0

Inoltre, in Swift, 'CFRetainCount 'conta anche riferimenti di tipo' sconosciuto ', che potrebbero includere riferimenti deboli. Ho imparato questo facendo riferimento incrociato al valore di 'CFGetRetainCount' di runtime con lo strumento Xcode" Visualizza gerarchia grafico memoria ". Maggiori informazioni qui: https://koenig-media.raywenderlich.com/uploads/2017/08/visual_memory_debugger.png –

+0

Grazie! Bisogno di importare la Fondazione per questo. – Segev