我正在开发一个将在各种 iOS 版本中使用的库。但是,某些方法只能在最新版本的 iOS(例如,iOS 7)上正常工作。
在第三方库中是否有标准方法来标记这样的方法?
我应该使用__OSX_AVAILABLE_STARTING
Availability.h 的宏,还是最好只留给 Apple 方法?
我正在开发一个将在各种 iOS 版本中使用的库。但是,某些方法只能在最新版本的 iOS(例如,iOS 7)上正常工作。
在第三方库中是否有标准方法来标记这样的方法?
我应该使用__OSX_AVAILABLE_STARTING
Availability.h 的宏,还是最好只留给 Apple 方法?
如果您只需要 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 有点陈旧且难以合并(#ifdef
s 堆),而属性是一种更现代和更精致的表达可用性的方式。