1

如何检查我的程序是否在 ARC(自动引用计数)设备中运行?

我可以使用这段代码:

#if ! __has_feature(objc_arc)
#    define FMDBRelease(__v) ([__v release]);
#else
#    define FMDBRelease(__v)
#endif

但这在编译时起作用。一个简单的代码是:

if ([object respondsToSelector:@selector(release)]) {
    [object release];
}

但不行。我在任何地方都找不到它。有解决方案吗?

4

2 回答 2

5

ARC 是一种编译时技术,因此#if __has_feature(objc_arc)方法是正确的方法。

于 2012-07-11T00:35:26.597 回答
3

你不能。ARC 是一个编译时工具。它在运行时没有真正的存在,除了插入允许尾调用优化的调用。

于 2012-07-11T00:35:36.277 回答