ARC的运行时检查(自动参考计数)

时间:2012-07-11 00:31:41

标签: objective-c ios4 automatic-ref-counting

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

我可以使用此代码:

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

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

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

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

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