1

我实际上正在将我的一些源文件转换为 ARC。ARC 非常好,节省时间和内存泄漏。实际上,我正在尝试转换我的 AVFoundation 代码,并在一行非常特殊的代码中达到了我的极限:

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

“色彩空间”是 CGColorSpaceRef 又名 CGColorSpace* 的类型。CGColorSpace 是一个结构体,不能转换为 id。我对此感到非常惊讶,因为代码总是对我有用(CIImage 正确使用了色彩空间)。我无法使用 ARC 运行编译器,因为色彩空间不是客观的 C 对象。编译器(使用 ARC)拒绝将颜色空间添加到字典中。

有谁知道如何替换这本字典中的“颜色空间”,或者如何告诉编译器,使用这个颜色空间指针没问题?

4

1 回答 1

3

使用CFDictionaryRefusingCFDictionaryCreate()而不是 anNSDictionary然后将其转换为NSDictionaryusing(__bridge_transfer NSDictionary *)

于 2011-10-12T11:51:20.167 回答