自动保留计数,AVFoundation:包含非目标C对象的字典。如何使用ARC实现这一点?

自动保留计数,AVFoundation:包含非目标C对象的字典。如何使用ARC实现这一点?,avfoundation,automatic-ref-counting,Avfoundation,Automatic Ref Counting,实际上,我正在将一些源文件转换为ARC。ARC非常好,节省了时间和内存泄漏。实际上,我正在尝试转换我的AVFoundation代码,并在一行非常特殊的代码中达到了极限: image = [CIImage imageWithCVPixelBuffer:pixelBuffer options:[NSDictionary dictionaryWithObject:colorSpace forKey:kCIImageColorSpace]]; “colorspace”是CGColorSpaceRef的

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

image = [CIImage imageWithCVPixelBuffer:pixelBuffer options:[NSDictionary dictionaryWithObject:colorSpace forKey:kCIImageColorSpace]];
“colorspace”是CGColorSpaceRef的类型,也称为CGColorSpace*。CGColorSpace是一个结构,无法转换为id。对此我感到非常惊讶,因为代码一直适用于我(CIImage正确使用了颜色空间)。我无法使用ARC运行编译器,因为颜色空间不是目标C对象。编译器(使用ARC)拒绝将颜色空间添加到字典中


有人知道如何替换此词典中的“colorspace”,或者如何告诉编译器使用此colorspace指针可以吗?

使用
CFDictionaryRef
使用
CFDictionaryCreate()
而不是
NSDictionary
将其转换为
NSDictionary
(uuu bridge\u transfer NSDictionary*)

这个“uu bridge”关键字解决了这个问题。在摸索了这个问题之后,代码实际上是这样的:image=[CIImage imageWithCVPixelBuffer:pixelBuffer options:[NSDictionary dictionary with object:(uu bridge id)colorSpace forKey:kCIImageColorSpace];非常感谢:-)