问题描述
我在我的代码中使用 CFMutableArrayRef。我在那里添加了几个 CFTypeRef 元素。
当我使用完数组后,我是否需要在实际释放数组之前调用 CFArrayRemoveAllValues(myArray);
或者简单地调用 CFRelease(myArray);
也会释放数组内容?
提前致谢
解决方法
调用 CFRelease
就是您需要做的一切,假设数组中包含的对象得到了适当的管理。
CFArray
是开源的,您可以在 https://opensource.apple.com/source/CF/CF-1153.18/CFArray.c.auto.html 上自行查看实现(查找 __CFArrayDeallocate
和 __CFArrayReleaseValues
)。
CFArray
与 NSArray
免费桥接,因此在 Objective-C 中很少需要直接使用 CFArray
。