Gli strumenti mi segnala una perdita di una variabile NSDate. Ma se aggiungo ritardi e rilasci dovrebbe essere in grado di rilasciare penso, dal pool di autorelease. Probabilmente sto contando male, ma non volevo esserne sicuro. Dai un'occhiata al RefCt. Se I [Class alloc] dovrebbe generare un conteggio di ritenzione pari a 1, allora se autorizzo questo oggetto, dovrebbe essere in grado di liberare, o no?Leak in Instruments, Reference Count e Autorelease
risposta
Instruments aggiunge la conserva e rilascia per voi. Questo è ciò che ti mostra la colonna "RefCt": il totale parziale.
Se I [Classe alloc] Dovrebbe venire con un conteggio di conservare 1, ...
E in effetti lo fa; questa è la prima riga nell'elenco.
... allora se autorizzo questo oggetto, dovrebbe essere in grado di liberare, o no?
Autorelease non è un immediato -1; causa un rilascio più tardi e quello è il il -1.
In modo da avere:
- Allocation: +1 (= 1)
- Autorelease: 0 per il momento; provoca un rilascio più tardi (nessun cambiamento, in modo ancora = 1)
- conservare: +1 (= 2)
- uscita: -1 (= 1)
- conservare: +1 (= 2)
- conservare: +1 (= 3)
- uscita: -1 (= 2)
- uscita: -1 (= 1)
nota che uno dei tre Uscite è quello causato dalla Autorelease . Solo allora è -1 sostenuto.
L'oggetto necessita di un'altra versione per essere deallocato. Finché ciò non accadrà, non lo farà.
E sì, è possibile che un oggetto abbia sufficienti autoreleases in sospeso per ucciderlo quando vengono conservati prima che ciò accada e quindi mantenuto in vita. Ho visto questo accadere una volta con un oggetto che stavo sottovalutando, ma quello era il valore di una proprietà usata da un Rilegatura; il Binding ne ha mantenuto il valore e quindi l'ha tenuto in vita anche dopo che mi ero auto-rilasciato la mia ultima proprietà.
- 1. iPhone - UIImage Leak, CGBitmapContextCreateImage Leak
- 2. Autorelease o Not to Autorelease
- 3. TestFlight Leak
- 4. JavaScript Reference Reference
- 5. Const reference e lvalue
- 6. Differenza tra count() e find(). Count() in MongoDB
- 7. Leak trovato: AndroidHttpClient creato e mai chiusa
- 8. Confronto traccia Xcode Instruments
- 9. draw leak leakInRect su iOS5.0.1
- 10. autorelease vs. release in dealloc
- 11. Rilascio obiettivo, autorelease e tipi di dati
- 12. Perdita di leak leakage in InputMethodManager
- 13. KnockoutJS Memory Leak
- 14. NSCFString Memory Leak
- 15. QFileDialog memory leak?
- 16. Gestione memoria Objective-C (alloc e autorelease)
- 17. Qual è la differenza tra count (0), count (1) .. e count (*) in mySQL/SQL?
- 18. DirectX 10 Resource Leak
- 19. CMSampleBufferRef memory leak
- 20. (iphone) UIImageView setImage: leak?
- 21. MySQL COUNT() e null
- 22. pagina piscina Autorelease danneggiato
- 23. Grizzly pipe leak: cosa sto facendo male?
- 24. Autorelease vs. Release
- 25. equivalente ARC di autorelease?
- 26. Count (*) vs Count (1)
- 27. COUNT (id) vs. COUNT (*) in MySQL
- 28. Come autorelease CGColorRef
- 29. Autorelease vs rilasciare
- 30. Sqlite Database LEAK FOUND exception in android?