CFArrayRef
私たちが知っているように、無料のブリッジ型とやなどの目的の c 型の間の変換は非常に簡単NSArray
です。CGImageRef
昨日、 (ツール不要のブリッジ型ではない) をid
次のように変換するコードを見つけました。
CALayer *imgLayer = [CALayer layer];
imgLayer.contents = (id)aImage.CGImage;
ただし、正常に動作します。CGImageRef
しかし、アップルのドキュメントによると、無料のブリッジ型に属していないため、わかりません。2 行目のコードを見てくださいimgLayer
。プロパティの内容に割り当てられた値を保持する必要があります。CGImageRef
に変換されるためid
、プロパティ コンテンツのセッター メソッドでは、このようにそのオブジェクトに保持メッセージが送信されると思います[xxx retain]
。しかしaImage.CGImage
、オブジェクトではないので、この保持メッセージが正しく実行されるとは思いません (ただし、そうなるでしょう)。だから私の質問は、この変換の背後にある実際のアクションは何ですか?