仅在 iOS 上声明 属性
Declare property only on 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 并仍然共享我的场景代码?
您可以使用
#if TARGET_OS_IPHONE
import CMMotionManager
您使用与导入语句相同的语法。这也是苹果在他们的示例游戏 DemoBots 中所做的。
#if os(iOS)
var motionManager....
#endif
#if os(tvOS)
...
#endif
您也可以进行多次检查并使用 else/else if
#if os(iOS) || os(tvOS)
....
#elseif os(OSX)
...
#endif
... // Code for other platforms
#endif
How to determine device type from Swift? (OS X or iOS)
只是好奇,您对 motionManager 属性 进行计算有什么特别的原因吗?
我正在为 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 并仍然共享我的场景代码?
您可以使用
#if TARGET_OS_IPHONE
import CMMotionManager
您使用与导入语句相同的语法。这也是苹果在他们的示例游戏 DemoBots 中所做的。
#if os(iOS)
var motionManager....
#endif
#if os(tvOS)
...
#endif
您也可以进行多次检查并使用 else/else if
#if os(iOS) || os(tvOS)
....
#elseif os(OSX)
...
#endif
... // Code for other platforms
#endif
How to determine device type from Swift? (OS X or iOS)
只是好奇,您对 motionManager 属性 进行计算有什么特别的原因吗?