假设我有一个包含 CFString 的 CFArray:
CFStringRef strs[3];
CFArrayRef anArray;
strs[0] = CFSTR("String One");
strs[1] = CFSTR("String Two");
strs[2] = CFSTR("String Three");
anArray = CFArrayCreate(NULL, (void *)strs, 3, &kCFTypeArrayCallBacks);
如果我使用 CFBridgingRelease 将 CFArrayRef 转换为 NSArray *(并在此过程中将数组对象的所有权转移给 ARC),那么原始数组的每个元素是否也会自动获得 CFBridgingRelease 调用?好像,一旦我这样做:
NSArray * arrayInArc = CFBridgingRelease(anArray);
我可以将 NSArray 的元素视为 NSString,而无需在每个原始 CFStringRef 上显式调用 CFBridgingRelease:
NSString * a0 = arrayInArc[0];
是否有任何文件说当您将集合(例如 CFArray)的所有权转移到 ARC 时,其元素的所有权也会转移?
谢谢,