怀疑在关闭时保留循环
Retain cycle suspected in closure
我怀疑我在 GameScene class 中使用以下函数来管理加速度计的输入,在我转换到另一个场景时阻止我的场景取消初始化:
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)
})
}
}
可能是因为自捕获,但如果是这样的话,我不知道把“[unowned self] in”捕获列表放在哪里。
你应该像这样把它放在accelerometerData, error in
之前[unowned self] accelerometerData, error in
我怀疑我在 GameScene class 中使用以下函数来管理加速度计的输入,在我转换到另一个场景时阻止我的场景取消初始化:
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)
})
}
}
可能是因为自捕获,但如果是这样的话,我不知道把“[unowned self] in”捕获列表放在哪里。
你应该像这样把它放在accelerometerData, error in
之前[unowned self] accelerometerData, error in