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 に答える