我正在使用iBeacons構建一個基於室內位置的應用程序,但是我爲了獲得準確的運動表示(速度,方向等)而使用了很多iPhone傳感器,與CoreMotion計步器和它的步計數屬性。我有一段代碼只是簡單地計算這些步驟並將它們打印在一個標籤中,並且我注意到在設備註冊我的移動之前需要大約10個步驟,然後每隔三或四步更新一次標籤。這些更新在「行走」狀態是好的,但我很想知道是否有可能加速初始響應和從靜止 - >步行轉換,而不是10將其降低到5,這是可以接受的。這是計算步驟的代碼:在iOS上增加計步器的初始響應
if(CMPedometer.isStepCountingAvailable()){
self.pedoMeter.queryPedometerDataFromDate(NSDate(), toDate: NSDate()) { (data : CMPedometerData!, error) -> Void in
dispatch_async(dispatch_get_main_queue(), {() -> Void in
if(error == nil){
self.steps.text = "\(data.numberOfSteps)"
}
})
}
self.pedoMeter.startPedometerUpdatesFromDate(NSDate()) { (data: CMPedometerData!, error) -> Void in
dispatch_async(dispatch_get_main_queue(), {() -> Void in
if(error == nil){
self.steps.text = "\(data.numberOfSteps)"
}
})
}
}
}
我也增加了更新間隔最大
manager.deviceMotionUpdateInterval = 0
而且這些都是我使用
let activityManager = CMMotionActivityManager()
let manager = CMMotionManager()
let pedoMeter = CMPedometer()
感謝您的更新,我仍然沒有切換到Swift 2.0 –