7

假设我有这段代码:

CGColorSpaceRef colorSpaceRGB = CGColorSpaceCreateDeviceRGB();

CGContextSetStrokeColorSpace(context, colorSpaceRGB);
CGContextSetFillColorSpace(context, colorSpaceRGB);

之后我画了一些。colorSpaceRGB完成后,如果我使用 ARC ,是否需要手动释放?像这样:

CGColorSpaceRelease(colorSpaceRGB);

还是我什么都不用做?

谢谢 :)

4

3 回答 3

11

是的。根据 Apple 的文档:因为 CGColorSpaceRelease 函数等价于 CFRelease,除了如果 cs 参数为 NULL 不会导致错误。如果您创建、复制或显式保留 Core Foundation 对象,您有责任在不再需要它时释放它(请参阅 Core Foundation 的内存管理编程指南)。

于 2012-06-24T16:29:19.167 回答
10

Swift 4.0 更新:

这在当前版本的 Swift 中不再需要。

CGColorSpaceRelease(colorSpace)

这行代码现在给出以下消息:

'CGColorSpaceRelease' 不可用:Core Foundation 对象自动进行内存管理

于 2017-12-26T17:23:45.740 回答
3

是的,我相信是这样,即使在 ARC 下也是如此。

您需要CGColorSpaceRelease按照文档CGColorSpace Documentation调用。

于 2012-06-24T16:17:48.980 回答