3

我正在开发一个将在各种 iOS 版本中使用的库。但是,某些方法只能在最新版本的 iOS(例如,iOS 7)上正常工作。

在第三方库中是否有标准方法来标记这样的方法?

我应该使用__OSX_AVAILABLE_STARTINGAvailability.h 的宏,还是最好只留给 Apple 方法?

4

1 回答 1

1

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

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 有点陈旧且难以合并(#ifdefs 堆),而属性是一种更现代和更精致的表达可用性的方式。

于 2013-10-02T18:47:47.817 回答