2012-08-28 5 views
0

Я следующую функцию часть UIImage Категория:CGImageCreateWithImageInRect Статический анализ Предупреждение

- (UIImage *)copyImageAtRect:(CGRect)rect { 
CGImageRef imageToSplit = self.CGImage; 
CGImageRef partOfImageAsCG = CGImageCreateWithImageInRect(imageToSplit, rect); 
UIImage *image = [UIImage imageWithCGImage:partOfImageAsCG]; 
CGImageRelease(partOfImageAsCG); 
return image;} 

Однако, когда я анализирую мой код, я получаю следующий статический анализ предупреждение: «Объект с +0 сохранить счетчик возвращается для вызывающего абонента, где ожидается ожидаемое значение +1 (владеющее), с выделенной линией возврата изображения.

Я попытался изменить многие вещи, но не могу понять, почему это происходит как потенциальная утечка.

Любая помощь очень ценится.

Большое спасибо.

EDIT Как указал waldrumpus, проблема была в названии моей функции. Он включает в себя слово «копия», которое собирал компилятор. Исправлено это путем переименования функции. Спасибо, валдрумп.

+1

Может быть, потому, что имя вашего метода начинается с 'copy ...', что делает компилятор ожидаемым объектом? Попробуйте изменить имя метода и посмотреть, исчезнет ли это предупреждение. – waldrumpus

+0

Спасибо waldrumpus, что поставило проблему. Хорошее место. –

+0

В этом случае я взял на себя смелость переупаковать в качестве ответа. – waldrumpus

ответ

0

Поскольку имя вашего метода начинается со слова copy..., компилятор предполагает, что он вернет сохраненную копию объекта. Это относится к именам методов, начинающихся с copy... или init....

Переименуйте метод на что-то еще, и предупреждение должно исчезнуть.

Смежные вопросы