为啥我没有收到任何加速度计更新?
Posted
技术标签:
【中文标题】为啥我没有收到任何加速度计更新?【英文标题】:Why am I not getting any accelerometer update?为什么我没有收到任何加速度计更新? 【发布时间】:2015-01-13 19:39:50 【问题描述】:我正在尝试使用 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")
问题是我的闭包似乎永远不会被调用(我在控制台中没有任何东西),你知道为什么吗?
【问题讨论】:
是的,我知道为什么。谢谢你来玩。 :) @matt 哦,我本来很乐意玩,但我住的地方是晚上 :) 【参考方案1】:问题在于分配给您的 CMMotionManager 实例的变量 motionManager
被声明为局部变量(在函数 viewDidLoad
的主体中),这意味着当函数完成执行。因此它的寿命约为万分之一秒。
嗯,这还不足以让您的 CMMotionManager 获得很多更新!
【讨论】:
如果您不了解变量的生命周期,您可能想阅读我刚刚编写的 Swift 教程的这一部分:apeth.com/swiftBook/ch03.html#_variable_scope_and_lifetime以上是关于为啥我没有收到任何加速度计更新?的主要内容,如果未能解决你的问题,请参考以下文章