我正在缩放一个CGImageRef
. 我在网上找到了各种这样开头的代码示例:
CGColorSpaceRef colorspace = CGImageGetColorSpace(image); // "Get" color space
CGContextRef context = CGBitmapContextCreate(NULL, width, height,
CGImageGetBitsPerComponent(image),
CGImageGetBytesPerRow(image),
colorspace,
CGImageGetAlphaInfo(image));
CGColorSpaceRelease(colorspace); // Really?
如您在上面看到的,colorspace
已发布。但是,当我这样做时,我的代码大部分时间都可以工作,但偶尔会崩溃,因为有时该颜色空间实例已经消失了。API 文档说:
您有责任根据需要保留和释放色彩空间。
这是否意味着我必须释放它?我假设约定是只有Create
名称中带有“”的调用结果才返回必须显式释放的对象。这是否意味着网络上的示例在发布时完全错误CGColorSpaceRef
?