【发布时间】:2023-03-04 11:04:02
【问题描述】:
我正在缩放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 时,网络上的示例完全错误?
【问题讨论】:
标签: objective-c cocoa memory-management core-graphics cgcolorspace