我在Mike Ash's post on ARC中看到了这个功能的使用,并想玩它,但我找不到它所在的位置。我没有在objc/runtime
和类似文件中找到它,运行时文档没有提到它,谷歌搜索也没有给我任何东西。它的秘密功能是什么?它在哪里?我如何导入它?
答案 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}}
但我不知道是否 在代码中调用这些内部运行时函数是安全的。 其中一些做了很特别的事情(比如检查调用者代码) 检查是否必须将对象放入自动释放池中。