如何导入objc_retainAutoreleasedReturnValue?

时间:2013-12-14 09:27:29

标签: objective-c objective-c-runtime

我在Mike Ash's post on ARC中看到了这个功能的使用,并想玩它,但我找不到它所在的位置。我没有在objc/runtime和类似文件中找到它,运行时文档没有提到它,谷歌搜索也没有给我任何东西。它的秘密功能是什么?它在哪里?我如何导入它?

1 个答案:

答案 0 :(得分:2)

objc_retainAutoreleaseReturnValue()以及来自的相关方法 ARC runtime support/usr/lib/libobjc.A.dylib中定义,但未在// wraps objc_autorelease(objc_retain(obj)) in a useful way when used with return values OBJC_EXPORT id objc_retainAutoreleaseReturnValue(id obj) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0); 中公开 公共头文件。

下载http://www.opensource.apple.com/source/objc4/objc4-551.1/时 你会在“runtime / objc-internal.h”中找到原型,例如

{{1}}

但我不知道是否 在代码中调用这些内部运行时函数是安全的。 其中一些做了很特别的事情(比如检查调用者代码) 检查是否必须将对象放入自动释放池中。