我正在创建一个CFMutableArray
并用 s 动态填充它CFString
。
如果我将其
CFMutableArray
作为NSMutableArray
using 进行桥接CFBridgingRelease
,它的孩子会发生什么?当我之后访问数组中的条目时,我可以将它们视为 ARC 管理
NSString
的,还是应该在结构中做一些花哨的事情CFArrayCallbacks
来自动处理该传输?
我正在创建一个CFMutableArray
并用 s 动态填充它CFString
。
如果我将其CFMutableArray
作为NSMutableArray
using 进行桥接CFBridgingRelease
,它的孩子会发生什么?
当我之后访问数组中的条目时,我可以将它们视为 ARC 管理NSString
的,还是应该在结构中做一些花哨的事情CFArrayCallbacks
来自动处理该传输?
如果我使用 CFBridgingRelease 将这个 CFMutableArray 作为 NSMutableArray 桥接,它的孩子会发生什么?
可能,什么都没有。当然,这取决于您在 CFArray 中添加的内容。如果您将不是免费的 C 类型桥接到 Objective-C 类型(CoreFoundation 的某些部分还没有桥接到任何东西),那么生成的 NS 类型的行为是未定义的。
当我之后访问数组中的条目时,我可以将它们视为 ARC 管理的 NSStrings,还是应该在 CFArrayCallbacks 结构中做一些花哨的事情来自动处理该传输?
如果您正在处理桥接数组中的桥接类型,则不需要做任何事情。数组中包含的值已经被保留(因此它们不应该再-retain
被数组发送),并且应该可以拉出并使用。