0

我正在创建一个CFMutableArray并用 s 动态填充它CFString

  1. 如果我将其CFMutableArray作为NSMutableArrayusing 进行桥接CFBridgingRelease,它的孩子会发生什么?

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

4

1 回答 1

2

如果我使用 CFBridgingRelease 将这个 CFMutableArray 作为 NSMutableArray 桥接,它的孩子会发生什么?

可能,什么都没有。当然,这取决于您在 CFArray 中添加的内容。如果您将不是免费的 C 类型桥接到 Objective-C 类型(CoreFoundation 的某些部分还没有桥接到任何东西),那么生成的 NS 类型的行为是未定义的。

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

如果您正在处理桥接数组中的桥接类型,则不需要做任何事情。数组中包含的值已经被保留(因此它们不应该再-retain被数组发送),并且应该可以拉出并使用。

于 2013-05-21T20:08:16.167 回答