Хорошо, проблема здесь в том, что мы определяем возврат из CGBitmapContextCreateImage как CGImageRef, это должен быть CGImage. Причина, по которой ваши выделения (я предполагаю, что malloc) постоянно увеличивается, заключается в том, что само CGImage никогда не освобождается. Попробуйте приведенный ниже код. Кроме того, нет необходимости автоматически выпускать результат, поскольку он никогда не будет 'Alloc'd.
После того, как вы снова внесете изменения в инстансы с распределением, на этот раз, надеюсь, вы не увидите непрерывного увеличения количества активных байтов.
Я набрал это на ПК, так что может быть синтаксическая ошибка, если вы уроните его в XCode; однако, это должно сработать.
// Get an image from the context and a UIImage
CGImage cgImage = CGBitmapContextCreateImage(bitmap);
UIImage* result = [UIImage imageWithCGImage:cgImage];
CGContextRelease(bitmap); // ok if NULL
CGImageRelease(cgImage);
return result;