Tidak dapat mengonversi nilai jenis (CMAccelerometerData!,NSError!)-›() keCMAccelerometerHandler(alias(Optional‹CMAccelerometerData›,Optional‹NSError›)-‹())

physicsWorld.gravity = CGVector(dx: 0, dy: -2)
    physicsWorld.contactDelegate = self

    motionManager.accelerometerUpdateInterval = 0.2

    motionManager.startAccelerometerUpdatesToQueue(OperationQueue.currentQueue!) { (data:CMAccelerometerData?, error:NSError?) -> Void in
        if let accelerometerData = data {
            let acceleration = accelerometerData.acceleration
            self.xAcceleration = (CGFloat(acceleration.x) * 0.75 + (self.xAcceleration * 0.25))
        }
    }        

Saya tidak tahu bagaimana cara memperbaikinya, ketika saya klik 'perbaiki' saja tidak berhasil


person Rainer Daniel    schedule 20.01.2017    source sumber
comment
Hapus kedua ?s.   -  person shallowThought    schedule 20.01.2017


Jawaban (1)


Saya pikir Anda ditipu oleh XCode, itu juga mengganggu saya ("Fix-it" sebenarnya tidak memperbaikinya).

Dalam kasus Anda, Anda kehilangan to: dan withHandler:

Berikut ini adalah kode yang berfungsi dengan Swift3.0.2 dan XCode 8.2.1 di bawah iOS 10

motionManager.startAccelerometerUpdates(
  to: OperationQueue.main ,
  withHandler:{ (data : CMAccelerometerData?, error : Error?) in
    if let accelerometerData = data {
        let acceleration = accelerometerData.acceleration
        self.xAcceleration = (CGFloat(acceleration.x) * 0.75 + (self.xAcceleration * 0.25))
    } 
})
person Ryan Wu    schedule 24.01.2017