На самом деле вы нигде не начинаете мониторинг. Вы запрашиваете авторизацию, но на самом деле не обрабатываете успех (или неудачу!) Этого запроса.
Вы можете (частично) сделать это, отслеживая успешность авторизации:
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
if(status == .authorizedAlways) {
let currentRegion = CLCircularRegion(center: (locationManager.location?.coordinate)!, radius: 200, identifier: "Place")
locationManager.startMonitoring(for: currentRegion)
}
}
Но это не относится к случаю, когда у вас уже есть авторизация. Вы действительно должны проверить текущее состояние авторизации, прежде чем запрашивать авторизацию.
Вы также действительно не хотите запрашивать авторизацию из didStartMonitoring
, и вызов startMonitoring
из didStartMonitoring
может быстро привести к безумию:)