使用Cocos2d-X检测IOS版本

时间:2014-05-30 19:21:02

标签: cocos2d-x

如何使用cocos2d-x检测正在运行的IOS版本?

当我使用cocos2d时,我使用下面的代码,但我不想去obj-c ++。

#define SYSTEM_VERSION_EQUAL_TO(v)                  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)     ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)

也许可以将UIDevice与cocos2d-x一起使用,我不知道。

2 个答案:

答案 0 :(得分:1)

在appcontroller.mm类中尝试你的代码。它会起作用。

已经cocos2d-x正在检查这样的版本以设置viewcontroller

// Set RootViewController to window
if ( [[UIDevice currentDevice].systemVersion floatValue] < 6.0)
{
    // warning: addSubView doesn't work on iOS6
    [window addSubview: viewController.view];
}
else
{
    // use this method on ios6
    [window setRootViewController:viewController];
}

答案 1 :(得分:1)

我在cocos2d-x 3.4中实现的方法是在CCApplication-ios.mm中添加以下方法

float Application::getSystemVersion() {
    return [[UIDevice currentDevice].systemVersion floatValue];
}

将此添加到CCApplication-ios.h

/** Get iOS version */
static float getSystemVersion();

使用

在任何地方调用它
float systemVersion = Application::getSystemVersion();