2012-06-24 14 views
6

のは、私は、コードのこの部分を持っているとしましょう:私はいくつかの描画を行うその後ARCの下でCGColorSpaceRefをリリースする必要がありますか?

CGColorSpaceRef colorSpaceRGB = CGColorSpaceCreateDeviceRGB(); 

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

を。完了したら、 ARCを使用している場合は手動でcolorSpaceRGBをリリースする必要がありますか?このように:

CGColorSpaceRelease(colorSpaceRGB); 

何もする必要はありませんか?

感謝:)

+0

を管理されているこの答えは、なぜうまく説明したときに任意のオブジェクトを解放する必要があります。確認してください:http://stackoverflow.com/a/21967681/2849443 –

答えて

10

はい。アップルの文書によると、CGColorSpaceRelease関数はCFReleaseと同等ですが、csパラメータがNULLの場合はエラーを起こさない点が異なります。 Core Foundationオブジェクトを作成、コピー、または明示的に保持する場合は、不要になったときに解放する必要があります(「コア管理のためのメモリ管理プログラミングガイド」を参照)。スウィフト4.0用

3

はい、私もARCの下で、そう信じています。

CGColorSpace DocumentationのようにCGColorSpaceReleaseに電話する必要があります。

0

更新:

これはもはやスウィフトの現在のバージョンでは必要ありません。

CGColorSpaceRelease(colorSpace) 

このコード行は現在、次のメッセージ得られます

「CGColorSpaceRelease」を使用できません:Core Foundationのオブジェクトが自動的にメモリが

関連する問題