当我正在学习OS X开发时,我遇到了奇怪的情况,我需要找到一种方法来为10.6以上的目标构建应用程序,如果它是10.7那么我需要调用一些新添加的方法或枚举。可能没有这样的方式但想过要问它。
我想必须有办法通过Macros或类似的方式使用它。我不想创建特定于操作系统的版本。任何帮助将不胜感激。可能没有这样的方式但想过要问它。
此致 M P。
答案 0 :(得分:1)
一种方法是将NSFoundationVersionNumber
与NSFoundationVersionNumber10_*
进行比较 - 请参阅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