Besoin d'aide sur l'exécution de code seulement si mes services de localisation sont activés parce que j'ai une tableview qui prend les données de firebase et les organise par distance et ne veut pas que l'application plante . J'ai aussi un UIRefreshControl que je veux seulement exécuter du code si les services de localisation sont également activés. Ma configuration actuelle ne fait pas ce que je cherche. Je poste tout mon ViewDidLoad ainsi que mon UIRefreshControl. getTableViewData() est le code que je veux exécuter si les services de localisation sont activés. Merci.Swift Exécuter uniquement du code si les services de localisation sont activés
override func viewDidLoad() {
super.viewDidLoad()
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
definesPresentationContext = true
tableView.tableHeaderView = searchController.searchBar
locationManager.delegate = self
locationManager.distanceFilter = kCLLocationAccuracyNearestTenMeters
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.startUpdatingLocation()
locationManager.stopUpdatingLocation()
locationManager.requestAlwaysAuthorization()
locationManager.requestWhenInUseAuthorization()
if CLLocationManager.locationServicesEnabled() {
switch(CLLocationManager.authorizationStatus()) {
case .notDetermined, .restricted, .denied:
print("No access")
case .authorizedAlways, .authorizedWhenInUse:
print("Access")
getTableViewData()
}
} else {
print("Location services are not enabled")
}
refresher = UIRefreshControl()
refresher.attributedTitle = NSAttributedString(string: "Pull to refresh")
refresher.addTarget(self, action: #selector(RegisteredLocations.handleRefresh(refreshControl:)), for: UIControlEvents.valueChanged)
tableView.addSubview(refresher)
}
@objc func handleRefresh(refreshControl: UIRefreshControl) {
self.usersArray.removeAll()
if CLLocationManager.locationServicesEnabled() {
switch(CLLocationManager.authorizationStatus()) {
case .notDetermined, .restricted, .denied:
print("No access")
case .authorizedAlways, .authorizedWhenInUse:
print("Access")
getTableViewData()
}
} else {
print("Location services are not enabled")
}
self.tableView.reloadData()
refreshControl.endRefreshing()
}
que se passe-t-il? Qu'est-ce qui ne fonctionne pas? –
Il n'exécute pas "getTableViewData()" lorsque j'autorise l'accès. –
Je ne veux pas que "getTableViewData()" s'exécute si l'accès a été refusé. –