我有一個方法返回CGPath
並生成分析器警告。該方法在協議中聲明。這裏是生成警告的示例實現:我應該如何避免這種內存警告?
「分配上線47和存儲到‘路徑’的物體的潛在的泄漏」:
- (CGPathRef)createPathForBounds:(CGRect)bounds key:(NSString *)key;
{
if ([key isEqualToString:OvalColumn])
{
CGPathRef path = CGPathCreateWithEllipseInRect(bounds, NULL);
return path;
}
return NULL;
}
下面是示例性的使用是生成的警告,「這不是在這一點上調用者所擁有的對象的引用計數錯誤減量」
CGPathRef path = [self.delegate createPathForBounds:bounds key:someKey];
// Use the path to do some drawing
CGRelease(path);
我的內存管理是correc噸;我從協議方法中傳回一個保留的CGPath
,並在調用塊中釋放它,所以我知道警告可以被忽略,但我想完全刪除它們。
我錯過了一個命名約定,它會使分析器快樂嗎? 函數可以在協議中定義嗎? 子類化將如何工作?
你可能會透露一下你得到的警告的措辭,或者我們必須猜測嗎? –
我的歉意。更新。 – kubi
如果將方法重命名爲pathForBounds:key,會發生什麼情況? –