我正在尝试使用新的Swift编程语言开始加速度计,但它似乎无法正常工作。这是我现在的代码:
var motionManager=CMMotionManager()
var queue=NSOperationQueue()
motionManager.accelerometerUpdateInterval = (1/40)
motionManager.startAccelerometerUpdatesToQueue(queue, withHandler {(accelerometerData:CMAccelerometerData!, error:NSError!) in
self.update(accelerometerData.acceleration)
})
我没有收到任何错误,但是当我运行时没有任何反应(我的更新功能没有被调用)。这究竟出了什么问题?
答案 0 :(得分:1)
加速度计可用吗?检查是否motionManager.accelerometerAvailable
是假的。也许你只是没有它正在运行的设备。
请注意,您应该使用类似1.0/40.0
的内容,使其间隔符合您的预期。
如果您使用模拟器,则无法测试加速度计。见Can i test accelerometer effect in Xcode simulator?
答案 1 :(得分:0)
您的motionManager
和queue
是局部变量,因此在此函数末尾取消分配对象。将它们存储在某个地方,就像在实例变量中一样。我自己多次犯了类似的错误。