仅在 iOS 上声明属性



我正在为iOS,OSX和tvOS制作SpriteKit游戏。我正在尝试将加速度计用于我的 iOS 目标。我在导入 CMMotionManager 时检查了 iOS,但在创建运动管理器属性时似乎无法使检查工作。

#if os(iOS)
    import CMMotionManager
#endif
class MainPlayScene: TCScene, SKPhysicsContactDelegate {
    //MARK: Properties
    //Motion
    @available(iOS 9, *) // Does not work, just trying things out....
    var motionManager:CMMotionManager {
        return motionManager
    }

如何进行此检查?

编辑:这里已经很晚了,我想得越多,如果我一起走错了路,请纠正我。如何仅将加速度计用于 iOS 并仍共享我的场景代码?

您使用的

语法与导入语句使用的语法相同。这也是苹果在他们的示例游戏DemoBots中所做的。

#if os(iOS)
var motionManager....
#endif
#if os(tvOS)
...
#endif

您也可以进行多次检查并使用 else/else 如果

 #if os(iOS) || os(tvOS)
 .... 
 #elseif os(OSX)
 ... 
 #endif
 ... // Code for other platforms
 #endif

如何从 Swift 确定设备类型?(OS X 或 iOS)

只是好奇,您计算 motionManager 属性有什么特殊原因吗?

你可以

使用类似的东西

#if TARGET_OS_IPHONE
    import CMMotionManager

相关内容

  • 没有找到相关文章

最新更新