我正在使用AVFoundation框架读取视频文件并将图像缓冲区作为CMSampleBuferRef,我使用CFArrayAppendValue()函数在CFMutableArrayRef中添加了缓冲区。
但是如果我想从那个数组中检索,有什么办法吗?
CFMutableArrayRef的Apple文档没有提供从数组中检索的方法。
答案 0 :(得分:2)
您正在寻找CFArray函数CFArrayGetValueAtIndex
或类似的东西。 CFMutableArray是来自CFArrays的“继承”,CFMutableArray上的文档仅包含与CFArray不同的API。
请参阅文档here。
答案 1 :(得分:1)
除了使用Matt指出的API(+1)之外,CFMutableArray
与NSMutableArray
进行免费桥接。您只需将CFMutableArray
的实例转换为NSMutableArray
并使用NSMutableArray
的方法(或相反)。在投射到NSMutableArray
之后,您可以使用-[NSArray objectAtIndex:]
。
许多基金会类型都有CoreFoundation对应的免费桥接。作为免费桥接类型,演员不会引入促销或转换。将它们视为相同类型,并且可以将实例转换/转换为其CF-NS对应物,而不会引入开销或更改实例。从技术上讲,如果您的实现在ARC下使用NS类型而不是CF类型,则可能会引入隐式引用计数。
如果您使用ObjC编写,并且更熟悉ObjC API,这可能很有用。