如何使用CFMutableArrray

时间:2012-07-17 16:40:36

标签: iphone objective-c core-foundation cftypes

我正在使用AVFoundation框架读取视频文件并将图像缓冲区作为CMSampleBuferRef,我使用CFArrayAppendValue()函数在CFMutableArrayRef中添加了缓冲区。

但是如果我想从那个数组中检索,有什么办法吗?

CFMutableArrayRef的Apple文档没有提供从数组中检索的方法。

2 个答案:

答案 0 :(得分:2)

您正在寻找CFArray函数CFArrayGetValueAtIndex或类似的东西。 CFMutableArray是来自CFArrays的“继承”,CFMutableArray上的文档仅包含与CFArray不同的API。

请参阅文档here

答案 1 :(得分:1)

除了使用Matt指出的API(+1)之外,CFMutableArrayNSMutableArray进行免费桥接。您只需将CFMutableArray的实例转换为NSMutableArray并使用NSMutableArray的方法(或相反)。在投射到NSMutableArray之后,您可以使用-[NSArray objectAtIndex:]

许多基金会类型都有CoreFoundation对应的免费桥接。作为免费桥接类型,演员不会引入促销或转换。将它们视为相同类型,并且可以将实例转换/转换为其CF-NS对应物,而不会引入开销或更改实例。从技术上讲,如果您的实现在ARC下使用NS类型而不是CF类型,则可能会引入隐式引用计数。

如果您使用ObjC编写,并且更熟悉ObjC API,这可能很有用。