标记方法可用性

时间:2013-10-02 18:42:35

标签: ios objective-c

我正在开发一个将在各种iOS版本中使用的库。但是,某些方法仅适用于最新版本的iOS(例如iOS 7)。

是否有标准方法在第三方库中标记此类方法?

我应该使用Availability.h的__OSX_AVAILABLE_STARTING宏,还是仅适用于Apple方法?

1 个答案:

答案 0 :(得分:1)

如果您只需要clang,可以考虑使用availability属性:

void f(void) __attribute__((availability(macosx,introduced=10.4,deprecated=10.6,obsoleted=10.7)));

http://clang.llvm.org/docs/LanguageExtensions.html#availability-attribute

我发现可用性API有点陈旧且很麻烦(#ifdef s的堆),而属性是一种更现代和更精细的表达可用性的方式。