Как передать переменные долготы и широты другой функции? - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть функция «locationManager», где я создаю и устанавливаю долготу и широту. То, что я хочу сделать, это иметь возможность получить это место при нажатии кнопки. Как я могу получить долготу и широту в @IBAction, когда я нажимаю эту кнопку? Спасибо тебе за помощь!

import UIKit
import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate {

    let locationManager = CLLocationManager()

    override func viewDidLoad() {
        super.viewDidLoad()

        setupLocationManager()
    }

    func setupLocationManager() {
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
        locationManager.requestWhenInUseAuthorization()
        locationManager.startUpdatingLocation()
    }

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        if let location = locations.last {
            if location.horizontalAccuracy > 0 {
                locationManager.stopUpdatingLocation()

                let longitude = location.coordinate.longitude
                let latitude = location.coordinate.latitude

                print("longitude = \(longitude)")
                print("latitude = \(latitude)")


            }
        }
    }


    func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
        print("Location update failed, \(error)")
    }


    @IBAction func buttonPressed(_ sender: UIButton) {
        // print(longitude)
    }

}

1 Ответ

0 голосов
/ 15 апреля 2020

Определите вашу переменную местоположения, если класс видимости

fileprivate var mylocation:CLLocation?

установите mylocation в

 func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        if let location = locations.last {
            if location.horizontalAccuracy > 0 {
                locationManager.stopUpdatingLocation()

                myLocation = location
            }
        }
    }

Теперь вы можете получить доступ к местоположению, когда нажмите кнопку

@IBAction func buttonPressed(_ sender: UIButton) {
                let longitude = myLocation.coordinate.longitude
                let latitude = myLocation.coordinate.latitude

                print("longitude = \(longitude)")
                print("latitude = \(latitude)")
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...