我怀疑我在GameScene课程中使用以下函数来管理加速度计的输入,这样我就可以在转换到另一个场景时保持场景不被初始化:
class GameScene: SKScene {
let motionManager = CMMotionManager()
var xAcceleration = CGFloat(0)
// Some stuff
// override func didMove(to: ....
func setupCoreMotion() {
motionManager.accelerometerUpdateInterval = 0.2
let queue = OperationQueue()
motionManager.startAccelerometerUpdates(to: queue,
withHandler:
{
accelerometerData, error in
guard let accelerometerData = accelerometerData else {
return
}
let acceleration = accelerometerData.acceleration
self.xAcceleration = (CGFloat(acceleration.x) * 0.75) +
(self.xAcceleration * 0.25)
})
}
}
这可能是因为自我捕获,但如果是这种情况,我不知道将“[无主自我]放入”捕获列表的位置。
答案 0 :(得分:2)
你应该像accelerometerData, error in
[unowned self] accelerometerData, error in
之前