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?
risposta
In genere si utilizzano gli strumenti per ottenere il conteggio. Ma come è stato risposto qui il metodo è retainCount
.
'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
Non aspettatevi che retainCount fornisca i valori esatti. Fai riferimento ai link che ho allegato al mio commento (sezione domanda) –
usando CFGetRetainCount
funzione
Esempio:
print(CFGetRetainCount(object))
Read more here: https://developer.apple.com/reference/corefoundation/1521288-cfgetretaincount
spero utile
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 –
Grazie! Bisogno di importare la Fondazione per questo. – Segev
perché avete bisogno retainCount? –
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
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) –