我需要得到
zipCode
以及
city
在多个视图控制器中。
以下是我目前的做法…
import CoreLocation
let locationManager = CLLocationManager()
class MyViewController: UIViewController, CLLocationManagerDelegate{
override func viewDidLoad() {
super.viewDidLoad()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
}
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
CLGeocoder().reverseGeocodeLocation(manager.location!, completionHandler: {(placemarks, error)-> Void in
if error != nil {
}
if placemarks!.count > 0 {
let placemark = placemarks![0]
self.locationManager.stopUpdatingLocation()
let zipCode = placemark.postalCode ?? ""
let city:String = placemark.locality ?? ""
}else{
print("No placemarks found.")
}
})
}
func someFunction() {
locationManager.startUpdatingLocation()
}
一切都很好,但是正如您在多视图控制器中看到的那样,这样做会导致大量代码重复(当然,我并没有显示整个代码)。
最常见的检索方法是什么?
邮政编码
和
城市
从
CLLocationManager()
以更实际的方式从多个视图控制器?
我想的是…
MyLocationManager.zipCode()
MyLocationManager.city()