如何保存纬度和经度,以便在另一个Swift文件中使用



我在ViewController中有这个代码来从用户捕获当前位置:

@IBOutlet weak var userMapView: MKMapView!
var locationManager = CLLocationManager()
override func viewDidLoad() {
    super.viewDidLoad()
    locationManager = CLLocationManager()
    locationManager.delegate = self
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.requestWhenInUseAuthorization()
    locationManager.startUpdatingLocation()
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    let location : CLLocationCoordinate2D = manager.location!.coordinate
    print(location.latitude)
    let latitudeDelta : CLLocationDegrees = 0.01
    let longitudeDelta : CLLocationDegrees = 0.01
    let span : MKCoordinateSpan = MKCoordinateSpanMake(latitudeDelta, longitudeDelta)
    let center : CLLocationCoordinate2D = CLLocationCoordinate2DMake(location.latitude, location.longitude)
    let region : MKCoordinateRegion = MKCoordinateRegionMake(center, span)
    self.userMapView.setRegion(region, animated: false)
    self.userMapView.removeAnnotations(userMapView.annotations)
    let userPinLocation : CLLocationCoordinate2D = CLLocationCoordinate2DMake(location.latitude, location.longitude)
    let pinAnnotation = MKPointAnnotation()
    pinAnnotation.coordinate = userPinLocation
    pinAnnotation.title = "Sua localização atual"
    self.userMapView.addAnnotation(pinAnnotation)
}

我有另一个swift文件与数据库功能,我需要保存纬度和经度用于数据库

我如何存储纬度和经度在变量外使用locationManager函数?

在您的locationManager(_: didupdatellocations:)实例方法中执行数据库操作。

CLLocationCoordinate2D只是一个包含两个double的Struct

didUpdateLocations函数的第一行将当前位置提取到局部变量location中:

let location : CLLocationCoordinate2D = manager.location!.coordinate

你可以把它从一个局部变量改成一个实例变量,这样它就可以在函数外部可见了。我将它设置为可选的,所以如果从未赋值,它将为nil。

最新更新