CMMotionManager и CMMotionActivityManager показывают неверное значение в Swift - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь использовать CMMotionManager для отслеживания того, бегает ли пользователь, гуляет или едет.В состоянии покоя он показывает вождение, предполагая, что он отображает старое значение.Как я могу очистить кэш, чтобы он показывал правильную вещь или, альтернативно, может быть что-то не так с моим кодом, заставляющим его показывать автомобильный, когда телефон находится в состоянии покоя:

Вот мой код:

//at beginning of class

 let motionManager = CMMotionManager()
 let motionActivityManager = CMMotionActivityManager()

 //in viewdidload

 if self.motionManager.isAccelerometerAvailable {
             self.motionManager.accelerometerUpdateInterval = 0.01
            motionActivityManager.startActivityUpdates(to: .main) { (activity) in
                guard let activity = activity else {             
                    return
                }
                if activity.walking {
                      self.rightBarButton.title = "?‍"
                }
                else if activity.running {
                         self.rightBarButton.title = "?‍"
                }
                else if activity.cycling {
                         self.rightBarButton.title = "?‍"
                }
                else if activity.automotive {
                         self.rightBarButton.title = "?"  
                }
                else { 
                 self.rightBarButton.title = "not moving"
                }
            }
        }
...