gpt4 book ai didi

xcode - RELEASE_SAFELY 是什么意思,为什么它在 xcode4 中不起作用?

转载 作者:行者123 更新时间:2023-12-03 21:33:16 25 4
gpt4 key购买 nike

RELEASE_SAFELYRELEASE_CF_SAFELY 是什么意思?好的,它用于释放对象,但为什么不使用 [obj release]

此外,我尝试在 xcode 4 中使用它,但遇到了 buid 错误:

Undefined symbols for architecture i386:
"_RELEASE_SAFELY", referenced from:
-[AdressBookModel search:] in AdressBookModel.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

我可以只做 [obj release] 吗?你会考虑什么?

最佳答案

RELEASE_SAFELY 不是函数而是宏,通常定义如下:

#define RELEASE_SAFELY(__POINTER) { [__POINTER release]; __POINTER = nil; }

(我认为它不是SDK的一部分,但必须在每个项目中单独声明。我认为它与XCode版本没有任何关系。)

所以它首先调用release,然后另外将变量设置为nil。这是一个很好的做法,因为它可以防止双重释放或访问已释放的实例。

您的代码似乎认为它是一个函数(而不是宏)。编译器可能会警告您它尚未声明。

修复方法是将上述宏定义放在适当的头文件中。

关于xcode - RELEASE_SAFELY 是什么意思,为什么它在 xcode4 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5420589/

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