我正在为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