繁体   English   中英

我是否需要在ARC下释放CGColorSpaceRef?

[英]Do I need to release CGColorSpaceRef under ARC?

假设我有这段代码:

CGColorSpaceRef colorSpaceRGB = CGColorSpaceCreateDeviceRGB();

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

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

CGColorSpaceRelease(colorSpaceRGB);

还是我不需要做任何事情?

谢谢 :)

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

Swift 4.0更新:

当前版本的Swift不再需要此功能。

CGColorSpaceRelease(colorSpace)

这行代码现在显示以下消息:

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

是的,我相信即使在ARC环境下也是如此。

你需要调用CGColorSpaceRelease按照文档CGColorSpace文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM