CFBridgingRelease如何处理Core Foundation容器中保留的对象?

时间:2013-05-21 19:54:48

标签: objective-c core-foundation

我正在创建CFMutableArray并使用CFString动态填充它。

  1. 如果我使用CFMutableArrayNSMutableArray作为CFBridgingRelease进行桥接,其子女会怎样?

  2. 当我之后访问数组中的条目时,我可以将它们视为ARC管理的NSString,还是应该在CFArrayCallbacks结构中做些什么来自动处理该传输?< / p>

1 个答案:

答案 0 :(得分:2)

  

如果我使用CFBridgingRelease将这个CFMutableArray作为NSMutableArray桥接,那么它的孩子会怎么样?

可能,没什么。当然,这取决于你投入CFArray的内容。如果你把没有免费桥接的C类型桥接到Objective-C类型(CoreFoundation的某些部分仍然没有桥接到任何东西),那么生成的NS类型的行为是未定义的。

  

当我之后访问数组中的条目时,我可以将它们视为ARC管理的NSStrings,还是应该在CFArrayCallbacks结构中做些什么来自动处理该传输?

如果您在桥接数组中处理桥接类型,则不需要执行任何操作。数组中包含的值已经被保留(因此它们不应该被数组-retain发送),并且可以很好地拔出并使用。