1

実際に、ソース ファイルの一部を ARC に変換しています。ARC は非常に優れており、時間とメモリ リークを節約できます。実際、私は AVFoundation コードを変換しようとしていて、非常に特別なコード行で限界に達しました。

image = [CIImage imageWithCVPixelBuffer:pixelBuffer options:[NSDictionary dictionaryWithObject:colorSpace forKey:kCIImageColorSpace]];

「colorspace」は CGColorSpaceRef 別名 CGColorSpace* のタイプです。CGColorSpace は構造体であり、id に変換できません。コードは常に私のために働いていたので、私はこれに非常に驚いています (色空間は CIImage によって正しく使用されています)。色空間が目的の C オブジェクトではないため、ARC を使用してコンパイラを実行できません。コンパイラ (ARC を使用) は、色空間をディクショナリに追加することを拒否します。

この辞書内の「色空間」を置き換える方法、またはこの色空間ポインタを使用しても問題ないことをコンパイラに伝える方法を知っている人はいますか?

4

1 に答える 1

3

の代わりにCFDictionaryRefusing を使用し、それをusingにキャストしますCFDictionaryCreate()NSDictionaryNSDictionary(__bridge_transfer NSDictionary *)

于 2011-10-12T11:51:20.167 に答える