0
Итак, я пытаюсь получить данные от датчика акселерометра, но я продолжаю получать эту ошибку, даже несмотря на то, что я попытался «!» а также '?' и «если да». Я не могу придумать что-то еще, и странно думать, что тот же самый код работает в учебнике youtube, откуда я его получил. Вот код:Ошибка: значение необязательного типа 'NSOperationQueue?' не разворачивается; вы, человек, использовали '!' или '?'?
// Instance variables
var currentMaxAccelY: Double = 0.0
var currentMaxAccelZ: Double = 0.0
lazy var motionManager = CMMotionManager()
// functions
override func viewDidLoad() {
currentMaxAccelY = 0.0
currentMaxAccelZ = 0.0
// Do any additional setup after loading the view.
//video version
if (self.motionManager.accelerometerAvailable) {
self.motionManager.accelerometerUpdateInterval = 0.2
self.motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()){[weak self](accelerometerData: CMAccelerometerData!, error: NSError!) in //here i get the error
self.outputAccelerationData(accelerometerData.acceleration)
if (error != nil){
print("\(error)")
}
}
}
else {
print("accelerometer not available")
}
super.viewDidLoad()
}
func outputAccelerationData(acceleration: CMAcceleration){
jumpCounter?.text = "\(acceleration.z).2fg"
y?.text = "\(acceleration.y).2fg"
if fabs(acceleration.y) > fabs(currentMaxAccelY) {
currentMaxAccelY = acceleration.y
}
if fabs(acceleration.z) > fabs(currentMaxAccelZ) {
currentMaxAccelY = acceleration.z
}
yMax?.text = "\(currentMaxAccelY).2f"
zMax?.text = "\(currentMaxAccelZ).2f"
}
Любая помощь очень ценится ..