如何在viewdidload()中使用CLLocation的位置(纬度,经度)

时间:2016-11-10 07:38:52

标签: ios swift xcode macos

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {


        let userLocation: CLLocation = locations[0]

        let center = CLLocationCoordinate2D(latitude: userLocation.coordinate.latitude, longitude: userLocation.coordinate.longitude)

        mylat = userLocation.coordinate.latitude
        mylong = userLocation.coordinate.longitude

        let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.04, longitudeDelta: 0.04))

        totalMap.setRegion(region, animated: true)
}

首先......对不起我的英文写作......

我习惯了mylatmylong在那个功能中。 但我想添加用户最近的位置与全局变量 我在viewDidLoad ..

中使用该用户位置

实际上我需要用户location(lat,long)和许多其他位置, 然后我用比较opration与两个位置, 我需要大部分的位置..

帮帮我

1 个答案:

答案 0 :(得分:0)

CLLocationManager异步工作。您可以在viewDidLoad()中使用,但不能像您想象的那样使用。

您可以注册这样的回调:

var onLocationUpdate: ((CLLocation) -> ())?
override func viewDidLoad() {
    super.viewDidLoad()
    onLocationUpdate = { [weak self] location in
        // do something with the location
    }
}

并在onLocationUpdate?(YOUR_LOCATION)方法

中调用locationManager(_:didUpdateLocations:)