[英]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.