如何检查我的程序是否在ARC(自动参考计数)设备中运行?
我可以使用此代码:
#if ! __has_feature(objc_arc)
# define FMDBRelease(__v) ([__v release]);
#else
# define FMDBRelease(__v)
#endif
但这项工作在编译时。一个简单的代码是:
if ([object respondsToSelector:@selector(release)]) {
[object release];
}
但不行。我在任何地方都找不到它。有一个解决方案吗?
答案 0 :(得分:5)
ARC是一种编译时技术,因此#if __has_feature(objc_arc)
方式是正确的方法。
答案 1 :(得分:3)
你做不到。 ARC是一个编译时工具。除了插入允许尾调用优化的调用之外,它在运行时没有真正存在。