为什么我没有得到任何加速计更新?

我正在尝试使用CoreMotion和Swift获取加速度计更新,下面是我放在viewDidLoad中的内容:

override func viewDidLoad() { super.viewDidLoad() let motionManager = CMMotionManager() motionManager.accelerometerUpdateInterval = 0.2 motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()) { (info:CMAccelerometerData!,error:NSError!) in if error != nil { println(error) } else { println("OK") } } } 

问题是,它看起来像我的封闭永远不会被调用(我没有在控制台中的任何东西),你知道为什么吗?

问题在于将CMMotionManager实例分配给其的variablesmotionManager声明为局部variables(在函数viewDidLoad的主体中),这意味着在函数完成执行时它不存在。 所以它的寿命是大约一万分之一秒。

那么,这是不够长的CMMotionManager获得很多更新!