我正在尝试通过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")
}
}
}
问题在于,好像我的闭包从未被调用过(控制台中没有任何东西),你知道为什么吗?
问题在于,motionManager
已将分配CMMotionManager实例的变量声明为局部变量(在函数的主体中viewDidLoad
),这意味着当函数完成执行时,该变量已不存在。因此,其寿命约为10000秒。
好吧,对于您的CMMotionManager而言,获得足够多的更新还不够长!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句