假设我有这段代码:
CGColorSpaceRef colorSpaceRGB = CGColorSpaceCreateDeviceRGB();
CGContextSetStrokeColorSpace(context, colorSpaceRGB);
CGContextSetFillColorSpace(context, colorSpaceRGB);
之后我做了一些绘画。当我完成后
如果我使用ARC,是否需要手动释放colorSpaceRGB
?像这样:
CGColorSpaceRelease(colorSpaceRGB);
或者我不需要做任何事情?
谢谢:)
答案 0 :(得分:11)
是。根据Apple的文档:因为CGColorSpaceRelease函数相当于CFRelease,但如果cs参数为NULL则不会导致错误。 如果您创建,复制或显式保留Core Foundation对象,则您有责任在不再需要时释放它(请参阅Core Foundation内存管理编程指南)。
答案 1 :(得分:5)
Swift 4.0的更新:
当前版本的Swift不再需要它。
<?php
$a = array(10,9,8,7,6,5,4,3,2,1);
$num = sizeof($a);
$comp = 0;
$swap = 0;
for ($i=0; $i < $num; $i++) {
echo "$a[$i] | ";
}
echo "<br>";
for ($in=0; $in < $num; $in++) {
$min = $in;
for ($i=$in+1; $i < $num; $i++) {
if ($a[$i] < $a[$min]) {
$min = $i;
}
$comp++;
}
if ($in != $min) {
$past = $a[$min];
$a[$min] = $a[$in];
$a[$in] = $past;
$swap++;
}
}
for ($i=0; $i < $num; $i++) {
echo "$a[$i] | ";
}
echo "<br> comp : $comp , swap : $swap";
?>
这行代码现在提供以下消息:
&#39; CGColorSpaceRelease&#39;不可用:Core Foundation对象自动进行内存管理
答案 2 :(得分:3)
是的,我相信,即使在ARC下也是如此。
您需要根据文档CGColorSpace Documentation致电CGColorSpaceRelease
。