Потенциальная утечка объекта, сохраненного в CGImageRef

#ios #objective-c #xcode #memory-leaks #automatic-ref-counting

#iOS #objective-c #xcode #утечки памяти #автоматический подсчет ссылок

Вопрос:

Запустив свой код в Xcode Analyze, я наткнулся на следующий блок

 - (UIImage *)imageWithFilter:(CIFilter *)filter
{
    CIContext *ctx = [CIContext contextWithOptions:nil];
    CGImageRef imageRef = [ctx createCGImage:filter.outputImage fromRect:CGRectMake(0, 0, self.size.width, self.size.height)];
    return [UIImage imageWithCGImage:imageRef];
}
 

Xcode жалуется на потенциальную утечку памяти:

введите описание изображения здесь

Что происходит? И как мне это исправить?

Ответ №1:

Следующее выглядит как исправление, все еще не уверен, является ли это лучшим способом обработки этой сохраненной ссылки?

 - (UIImage *)imageWithFilter:(CIFilter *)filter
{
    CIContext *ctx = [CIContext contextWithOptions:nil];
    CGImageRef imageRef = [ctx createCGImage:filter.outputImage fromRect:CGRectMake(0, 0, self.size.width, self.size.height)];
    UIImage *image = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    return image;
}
 

Комментарии:

1. Это лучший способ. Я могу тебя: D