¿Cómo recupero los datos del acelerómetro correctamente con Swift en iOS?
Estoy tratando de grabar los datos del acelerómetro del iPhone (mi propio iPhone 5s) y establecer una etiqueta en la pantalla para esos datos usandoString(format: "%.2f", data)
donde data es el valor para el eje específico que quiero registrar. Para hacer esto, configuré un CMMotionManager y comencé a registrar datos del acelerómetro, y tengo un temporizador que actualiza constantemente el texto en la etiqueta. Sin embargo, recibo un error de Xcode: "error fatal: inesperadamente encontrado nulo al desenvolver un valor opcional". Aquí está el código relevante:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//if accelerometer can be used, start it
if (motionManager.accelerometerAvailable) {
motionManager.accelerometerUpdateInterval = 0.1
motionManager.startAccelerometerUpdates()
let timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("update"), userInfo: nil, repeats: true)
}
}
func update () {
if (motionManager.accelerometerActive) {
accelX.text = String(format: "%.2f", motionManager.accelerometerData.acceleration.x)
}
}
El error se detiene cuando cambio la asignación de accelX.text a una cadena simple, por lo que creo que la variable opcional que crea el error tiene algo que ver con el acelerómetro. Sin embargo, hasta donde yo sé, así que si tienes alguna sugerencia, o si lo estoy haciendo completamente mal y hay una manera mejor y más fácil, definitivamente te agradeceré si me ayudas.