iPhone oyunu yapıyorum. Tahsis edilen veya tutulan tüm nesneleri serbest bırakmak istiyorum. dealloc
işlevinde, tüm bu nesneleri serbest bırakıyorum, ancak daha sonra, henüz tahsis edilmedikleri zaman nesneleri serbest bıraktığımı fark ettim. Bu yüzden, retainCount
'un sıfırdan büyük olup olmadığını kontrol etmem gerektiğine karar verdim.Atanan veya tutulan bir nesneyi kaç kez serbest bırakırım?
Sorum şu:
Sadece retainCount
sıfırdan büyük olup olmadığını kontrol sonra bırakın musunuz?
if([bg retainCount]!=0)
{
[bg release];
}
veya
ben onunretainCount
olarak bunu Yardımlarınız için
while([bg retainCount]!=0)
{
[bg release];
}
Teşekkür olarak defalarca serbest olmalı!
Herhangi bir nesnenin 'retainCount'u ** işinizin ** hiçbiri **. Bir hata ayıklama yardımcısı olarak var ama daha fazla bir şey yok. Üretim kodu asla buna bağlı olmamalıdır. – Sven
BTW - kodun doğru olmasını sağlamaz - ancak, tanımı gereği, "retainCount" 0'a asla dönemez çünkü nesne zaten gerçekleşen süreye göre ayrılmışsa ..... – bbum
Analiz edin (örneğin Clang analizörü). Size yanlış gittiğiniz yere işaret edebilir. –