При запуске симулятора координаты не печатаются, а при запуске программы на моем iPhone. - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть следующий код

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, поэтому я предполагаю, что две проблемы связаны.Заранее спасибо

1 Ответ

0 голосов
/ 10 декабря 2018

Вы можете смоделировать местоположение на симуляторе, используя кнопку «Симулировать местоположение» при запуске приложения:

enter image description here

Вы можете выбрать одно из существующих местоположенийили вы можете создать файл GPX (например, не статическую единую точку, а маршрут, который будет симулировать постоянное изменение местоположения).Я бы порекомендовал вам использовать https://mapstogpx.com/ для создания файлов GPX.

...