如何在视图控制器上显示加速度计数据

时间:2014-11-16 03:13:50

标签: swift accelerometer viewcontroller

我正在通过以下方法从陀螺仪和加速度计收集数据:

motionManager.startAccelerometerUpdatesToQueue(accelQueue, withHandler: accelHandler)

Handler看起来像这样:

func accelHandler (accelerometerData : CMAccelerometerData!, error : NSError!){

    //for saving
    logging.accelerationX = accelerometerData.acceleration.x
    logging.accelerationY = accelerometerData.acceleration.y
    logging.accelerationZ = accelerometerData.acceleration.z

    //for displaying
    accelX.text = (NSString(format: "%.5f", accelerometerData.acceleration.x))
    accelY.text = (NSString(format: "%.5f", accelerometerData.acceleration.y))
    accelZ.text = (NSString(format: "%.5f", accelerometerData.acceleration.z))

}

logging.accelerationX是我自己的变量,accelX.text的类型为@IBOutlet weak var accelX:UILabel!。 处理程序可靠,但我没有在相应标签的屏幕上收到dataString。 有人建议吗?

1 个答案:

答案 0 :(得分:1)

我猜这个问题是accelQueue。您正在此队列上调用accelHandler。这是一个后台队列(我猜)。但接着你正在与accelX交谈,这是界面中的一个标签。您必须从不尝试与后台队列上的接口进行通信!所以在做这样的事情之前你需要走出主队列。