2011-08-25 15 views
5

CGPath'u döndüren ve çözümleyici uyarıları üreten bir yöntem var. Yöntem bir protokolde bildirilmiştir.Bu bellek uyarısından nasıl kaçınmalıyım?

"hat 47 tahsis 'yol' içine depolanmış olan bir nesnenin potansiyel kaçak": Burada

- (CGPathRef)createPathForBounds:(CGRect)bounds key:(NSString *)key; 
{ 
    if ([key isEqualToString:OvalColumn]) 
    { 
     CGPathRef path = CGPathCreateWithEllipseInRect(bounds, NULL); 
     return path; 
    } 

    return NULL; 
} 

olan örnek kullanım olup burada uyarının üretilmesi olan bir örnek uygulamasıdır uyarı, "arayan tarafından, bu noktada ait olmayan bir nesnenin başvuru sayısı yanlış eksiltme" üreten

CGPathRef path = [self.delegate createPathForBounds:bounds key:someKey]; 

// Use the path to do some drawing 

CGRelease(path); 

My bellek yönetim düzeltmesi olduğu t; Protokolüm yönteminden geri kalan CGPath'u geri alıyorum ve çağrı bloğunda bırakıyorum, bu yüzden uyarıların göz ardı edilebileceğini biliyorum, ancak bunları tamamen kaldırmak istiyorum.

Çözümleyiciyi mutlu edecek bir adlandırma kuralı mı eksik? Protokollerde işlevler tanımlanabilir mi? Alt sınıflar nasıl çalışır?

+1

Belki de aldığınız uyarının metnini açıklayabilir misiniz, yoksa tahmin etmeli miyiz? –

+0

Özür dilerim. Güncellenmiş. – kubi

+0

Yönteminizi pathForBounds olarak yeniden adlandırırsanız ne olur: key: ?? –

cevap

5

- (CGPathRef)newPathForBounds:(CGRect)bounds key:(NSString *)key

konu hakkında detaylı not alternatif olarak, öznitelik cf_returns_retained kullanmayı seçmiş

here buldum, ama en iyi (IMO) destekleyecek şekilde adlandırma kuralları var edilebilir.

+0

Güzel. Arka görüşte çok açık. – kubi

+0

Neden oy kullandığını bilmiyorum. Bu kesinlikle doğru cevap. Analizör, yöntem isimlendirme kurallarından çalışmaktadır. İsmi "newPathForBounds" olarak değiştirmek, analizciye (ve onu kullanan herhangi bir geliştiriciye) tam olarak bu yöntemin ne yaptığını söyler - ve tutulan nesnenin diğer ucu tükürmesini beklemeniz gerekir. – Steve

+0

Sadece Vakıf nesnelerinin Temel adlandırma kurallarını kullanmak zorunda olduğu yöntemleri döndürdüm. Bunun neden bir oylama olduğunu da bilmiyorum. – kubi