Я не понимаю, как инициализировать эту метку в моей попытке reverseGeocodeLocation.
Во-первых, я не знаю, правильно ли инициализирован reverseGeocodeLocation. Это доставляло мне некоторые проблемы; но на данный момент Xcode, похоже, с этим все в порядке.
Настоящая проблема возникает в строке 55: placemark = CLPlacemark(placemark: placemarkArr[0] as! CLPlacemark)
Я получаю сообщение об ошибке: «Не удается вызвать инициализатор для типа «CLPlacemark» со списком аргументов типа «(метка места: CLPlacemark)»»
Я использую Xcode 7 Beta 4; так что я не знаю, может ли быть дело в этом. Я видел более старые примеры того, как написать эту строку кода, но все они кажутся более ранними версиями кода.
Спасибо за любую помощь или предложения! Это меня какое-то время ставило в тупик.
import UIKit
import CoreLocation
class ViewController: UIViewController, CLLocationManagerDelegate{
var manager:CLLocationManager?
@IBOutlet weak var latitude: UILabel!
@IBOutlet weak var longitude: UILabel!
@IBOutlet weak var altitude: UILabel!
@IBOutlet weak var course: UILabel!
@IBOutlet weak var speed: UILabel!
@IBOutlet weak var address: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
manager = CLLocationManager()
manager!.delegate = self
manager!.desiredAccuracy - kCLLocationAccuracyBest
manager!.requestWhenInUseAuthorization()
manager!.startUpdatingLocation()
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
print(locations)
let userLocation:CLLocation = locations[0]
self.latitude.text = "\(userLocation.coordinate.latitude)"
self.longitude.text = "\(userLocation.coordinate.longitude)"
self.course.text = "\(userLocation.course)"
self.speed.text = "\(userLocation.speed)"
self.altitude.text = "\(userLocation.altitude)"
let geocoder = CLGeocoder()
geocoder.reverseGeocodeLocation(userLocation) { (placemarkArr, error) -> Void in
var placemark:CLPlacemark!
//let gp = userLocation
if error == nil && placemarkArr!.count > 0 {
print(userLocation)
placemark = CLPlacemark(placemark: placemarkArr[0] as! CLPlacemark)
var addressString: String = ""
if placemark.ISOcountryCode == "TW" {
if placemark.country != nil {
addressString = placemark.country!
}
if placemark.subAdministrativeArea != nil {
addressString = addressString + placemark.subAdministrativeArea! + ", "
}
if placemark.postalCode != nil {
addressString = addressString + placemark.postalCode! + " "
}
if placemark.locality != nil {
addressString = addressString + placemark.locality!
}
}
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}