我不会打印在控制台currentCity,对于使用城市名称的另一个功能!请帮帮我。我如何利用变量从功能其他功能SWIFT 3
var locationManager = CLLocationManager()
var currentCity: String?
override func viewDidLoad() {
super.viewDidLoad()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
print(currentCity) //----error not printing CITY NAME
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let userLocation: CLLocation = locations[0]
CLGeocoder().reverseGeocodeLocation(userLocation) { (placemarks, error) in
if error != nil {
print(error?.localizedDescription as Any)
} else {
if let placemark = placemarks?[0] {
if let city = placemark.addressDictionary?["City"] as? NSString {
self.cityLbl.text = city as String
self.currentCity = city as String
}
}
}
}
}
将打印线在'didUpdateLocations'委托方法在'else'范围的端部。 – vadian
我需要在另一个功能中使用城市名称!你的变体已经工作,但我不需要在didUpdateLocations中打印。我不会把这个城市名称,并在json –
中使用这个名字认为异步并从委托方法调用*其他函数*。 – vadian