У меня есть метод, который возвращает 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);
Мое управление памятью правильно; Я возвращаю оставшийся CGPath
из моего метода протокола и освобождаю его в вызывающем блоке, поэтому я знаю, что предупреждения можно игнорировать, но я бы хотел удалить их полностью.
Я пропускаю соглашение об именах, которое сделает анализатор счастливым?
Можно ли определить функции в протоколах?
Как будет работать подклассы?