Должен ли быть выпущен результат CGImageGetColorSpace (изображение)?

Я масштабирую CGImageRef . Я нашел в сети различные примеры кода, которые начинаются так:

CGColorSpaceRef colorspace = CGImageGetColorSpace(image); // "Get" color space

CGContextRef context = CGBitmapContextCreate(NULL, width, height,
    CGImageGetBitsPerComponent(image),
    CGImageGetBytesPerRow(image),
    colorspace,
    CGImageGetAlphaInfo(image));

CGColorSpaceRelease(colorspace); // Really?

Как вы можете видеть выше, выпущено цветовое пространство . Однако, когда я это делаю, мой код работает большую часть времени, но время от времени дает сбой, потому что иногда этот экземпляр цветового пространства уже отсутствует. В документации API говорится:

Вы несете ответственность за сохранение и освобождение цветового пространства по мере необходимости.

Означает ли это, что я должен освободить его? Я предположил, что соглашение заключалось в том, что только результаты вызовов с « Create » в имени возвращают объекты, которые должны быть освобождены явно. Означает ли это, что примеры в Интернете просто неверны при выпуске этого CGColorSpaceRef ?

9
задан Paulo Mattos 10 March 2018 в 01:20
поделиться