После запуска motionActivityUpdates любая попытка остановить его не работает.Вот код, который я использую для запуска движения.Существует аналогичный вопрос без каких-либо ответов, и он находится на C. При чтении документации это должно остановить действия обновлений
Вызовите этот метод, чтобы остановить доставку обновлений, которые выначалось с вызова метода startActivityUpdates (to: withHandler :).Этот метод не останавливает запросы, запущенные с использованием метода queryActivityStarting (from: to: to: withHandler :).
var manager: CMMotionActivityManager?
var motionManager: CMMotionManager?
func startMotionMonitoring() {
motionManager = CMMotionManager()
manager = CMMotionActivityManager()
startActivityMonitoring()
}
func startActivityMonitoring() {
if !CMMotionActivityManager.isActivityAvailable() {
return
}
if CMMotionActivityManager.authorizationStatus() != .authorized {
return
}
if let man = manager {
man.startActivityUpdates(to: .main) { (activity) in
guard let a = activity else {
return
}
print("motionActive")
}
}
}
У меня есть другая функция, которую я вызываю, чтобы остановить все
func endMotionMonitoring(){
if manager == nil && motionManager == nil { return }
manager!.stopActivityUpdates()
manager = nil
motionManager!.stopAccelerometerUpdates()
motionManager = nil
}
Но это не останавливает обновления активности движения.Каждый раз, когда я перемещаю телефон, он печатает утверждение «motionActive»
Кто-нибудь знает, как это исправить?