Как мне избежать этого предупреждения памяти?

У меня есть метод, который возвращает CGPath и генерирует предупреждения анализатора. Метод объявлен в протоколе. Здесь - это пример реализации, которая генерирует предупреждение:

«Возможная утечка объекта, выделенного в строке 47 и сохраненного в 'path'»:

- (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 из моего метода протокола и освобождаю его в вызывающий блок, поэтому я знаю, что предупреждения можно игнорировать, но я бы хотел полностью удалить их.

Не хватает ли мне соглашения об именах, которое порадует анализатор? Можно ли определять функции в протоколах? Как будет работать создание подклассов?

5
задан Felix Kling 25 August 2011 в 15:44
поделиться