假设我有这段代码:
CGColorSpaceRef colorSpaceRGB = CGColorSpaceCreateDeviceRGB();
CGContextSetStrokeColorSpace(context, colorSpaceRGB);
CGContextSetFillColorSpace(context, colorSpaceRGB);
之后我做了一些绘画。当我完成后,如果我使用ARC,是否需要手动释放colorSpaceRGB
?像这样:
CGColorSpaceRelease(colorSpaceRGB);
或者我不需要做任何事情?
谢谢 :)
是。根据Apple的文档:因为CGColorSpaceRelease函数相当于CFRelease,但如果cs参数为NULL则不会导致错误。如果您创建,复制或显式保留Core Foundation对象,则您有责任在不再需要时释放它(请参阅Core Foundation的Memory Management编程指南)。
Swift 4.0的更新:
在当前版本的Swift中不再需要它。
CGColorSpaceRelease(colorSpace)
这行代码现在给出以下消息:
'CGColorSpaceRelease'不可用:Core Foundation对象自动进行内存管理
是的,我相信,即使在ARC下。
您需要根据文档CGColorSpaceRelease
调用CGColorSpace Documentation。