4

ACGImageRefには変更操作がないようです。a をコピーしても、 (実験によって決定された)CGImageRefはコピーされません。CGDataProviderRefが不変型の場合、 vs.CGImageRefにする理由はありますか?copyretain

4

2 に答える 2

2

CGImageRef には変更操作がないようです

変更するパブリック関数はありませんが、不変CGImageというわけではありません。つまり、内部構造は文書化されていませんが、それを変更する方法はまだあります。CGImageRefCGImageRef

CGImageRef imageRef = ...
struct CGImage image = *imageRef;
//if you know the internal structure, you can do things like
image.provider = ...

Core Graphics は画像の内部コピーを作成することが多いと思います。たとえば、CGImageCreateCopyWithColorSpaceおそらくCGImageCreateCopy内部で使用します。描画中のコピーも可能です。

そしてもちろん、これは「サブクラス化」のための非常に優れた設計です (オブジェクトではなく構造体があるため、実際にはサブクラス化ではありません)。

于 2013-05-23T12:29:31.540 に答える
0

いいえ。場合によってはcopy、必要CGImageRefな場合がありUIImageます。retaincopy

于 2013-05-23T11:22:39.020 に答える