我正在开发一个将在各种iOS版本中使用的库。但是,某些方法仅适用于最新版本的iOS(例如iOS 7)。
是否有标准方法在第三方库中标记此类方法?
我应该使用Availability.h的__OSX_AVAILABLE_STARTING
宏,还是仅适用于Apple方法?
答案 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的堆),而属性是一种更现代和更精细的表达可用性的方式。