У меня есть следующий код
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, CLLocationManagerDelegate {
var locationManager = CLLocationManager()
var coordinates: String?
override func viewDidLoad() {
super.viewDidLoad()
self.locationManager.requestAlwaysAuthorization()
if CLLocationManager.locationServicesEnabled() {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.startUpdatingLocation()
}
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
//updates the user's location as the user moves
let location: CLLocation = locations[0] as CLLocation
coordinates = "\(location.coordinate.latitude),\(location.coordinate.longitude)"
print(coordinates!)
}
Когда я запускаю это на симуляторе, программа работает нормально, но не печатает координаты.Когда я запускаю его на своем iPhone, он печатает координаты.Что-то в настройках Xcode мне нужно изменить, чтобы это исправить?Кроме того, когда я пытаюсь использовать переменную «координаты» в другой функции, я получаю сообщение об ошибке, в котором говорится, что компилятор находит nil, даже если я присвоил ему значение в функции locationManager, поэтому я предполагаю, что две проблемы связаны.Заранее спасибо