gpt4 book ai didi

objective-c - CFSTR内存管理

转载 作者:太空狗 更新时间:2023-10-30 03:41:20 28 4
gpt4 key购买 nike

我正在使用 CFSTR 函数从常量 c 字符串创建 CFString 并且我在我的守护进程中非常频繁地调用这个函数。

来自 documentation :
CFSTR 返回的值具有以下语义:

  1. 从 CFSTR 返回的值不由 CFString 释放——它们是保证有效直到程序终止
  2. 你可以保留 并以平衡的方式释放 CFSTR 返回的值,例如 任何其他 CFString,但您不需要这样做。

我应该使用 retain 和 release 吗?

最佳答案

如文档所述,CFSTR() 创建的字符串在程序终止之前一直有效。您可以整天释放它们,但它们实际上不会被释放。因此,没有必要明确保留/释放它们。保留/释放它们是有效的,否则,您无法通过保留/释放它们的其他代码(框架方法等)传递它们。像对待使用 @"" 创建的 NSString 文字一样对待它们,也就是说,在创建后不需要保留或释放它们,但是如果您正在编写可以采用任何 CFString 的代码,则需要遵循正常的内存管理规则,包括使用 CFRetain()CFRelease()

关于objective-c - CFSTR内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9263842/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com