Xcode Konsolu'nda nesnelerin korunma sayısını hızlı bir şekilde kaydetmenin bir yolu var mı? Değilse, bir sonraki en iyi alternatif nedir?Swift: Nasıl çıkış yapmak için nesnelerin sayısı korunur?
cevap
Tipik olarak, korunma sayısını elde etmek için aletleri kullanırsınız. Ancak burada cevaplandığı gibi yöntem retainCount
.
'retainCount' Swift'de iyi değil. Ve aksi halde - "Özel Düşünceler" altındaki belgelere bakın: "Bu yöntem, bellek yönetimi sorunlarının hatalarını ayıklamakta bir değere sahip değildir. Çünkü herhangi bir sayıda çerçeve nesnesi, referansları tutmak için bir nesneyi muhafaza etmiş olabilir ..." Nasıl olurdu? Bunu Aletlerde mi yapıyorsun? – sirab333
RetainCount'un size kesin değerleri vermesini beklemeyin. Yorum eklediğim bağlantıları inceleyin (Soru bölümü) –
kullanılarak CFGetRetainCount
fonksiyon
Örnek: daha burada
print(CFGetRetainCount(object))
Oku: https://developer.apple.com/reference/corefoundation/1521288-cfgetretaincount
Ayrıca, Swift, 'CFRetainCount' da zayıf referanslar içerebilecek 'bilinmeyen' türünün referanslarını sayar. Bunu, "CFGetRetainCount" çalışma zamanını Xcode "Bellek Grafiği Hiyerarşisini Görüntüleme" aracıyla çapraz referans yaparak öğrendim. Daha fazla bilgi için: https://koenig-media.raywenderlich.com/uploads/2017/08/visual_memory_debugger.png –
Teşekkürler! Bunun için Vakıf ithal etmek gerekiyor. – Segev
Neden retainCount ihtiyaç yararlı umut? –
Tıpkı bir öğretim aracı gibi. Öğrencilerin ne kadar güçlü döngüleri olduğunu göstermek ve sadece ARC olayından bahsedeceğim. – sirab333
'retainCount' yöntemini kullanmadan önce bunları okuyun. [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-useless /), [4] (http://stackoverflow.com/questions/5784084/calling-retaincount-considered-harmful), [5 Apple'ın retainCount yöntemi ile ilgili açıklaması ] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/#//apple_ref/occ/intfm/NSObject/retainCount) –