Mac OS X版本特定的API用法

时间:2012-02-27 16:25:54

标签: macos xcode4.2 osx-lion osx-snow-leopard

当我正在学习OS X开发时,我遇到了奇怪的情况,我需要找到一种方法来为10.6以上的目标构建应用程序,如果它是10.7那么我需要调用一些新添加的方法或枚举。可能没有这样的方式但想过要问它。

我想必须有办法通过Macros或类似的方式使用它。我不想创建特定于操作系统的版本。任何帮助将不胜感激。可能没有这样的方式但想过要问它。

此致 M P。

2 个答案:

答案 0 :(得分:1)

一种方法是将NSFoundationVersionNumberNSFoundationVersionNumber10_*进行比较 - 请参阅Foundation/NSObjCRuntime.h了解可用版本。

有时,您可以尝试-[NSObject respondsToSelector:]

答案 1 :(得分:0)

您可以从属性文件中读取该版本:

  /System/Library/CoreServices/SystemVersion.plist

通过这种方式,您可以通过#ifdefine

构建没有不同版本的动态代码

编辑:@MP嗯,我知道您不想生成特定于版本的代码。 如果你准备好了,那就很容易了。只需使用:

  #include <Availability.h>
  #ifdef __MAC_10_7
      /* 10.7 only code */
  #else
      /* not 10.7 code */
  #endif