CLLocationDegrees
を入力し、CLPlacemark
を返す簡単なメソッドを作成しようとしています。 Apple's documentationを見ると、簡単な作業のようです。以下はSwiftの逆ジオコーディング4
は、私が遊び場に捨ててきたものである:
import CoreLocation
// this is necessary for async code in a playground
import PlaygroundSupport
// this is necessary for async code in a playground
PlaygroundPage.current.needsIndefiniteExecution = true
func geocode(latitude: CLLocationDegrees, longitude: CLLocationDegrees) -> CLPlacemark? {
let location = CLLocation(latitude: latitude, longitude: longitude)
let geocoder = CLGeocoder()
var placemark: CLPlacemark?
geocoder.reverseGeocodeLocation(location) { (placemarks, error) in
if error != nil {
print("something went horribly wrong")
}
if let placemarks = placemarks {
placemark = placemarks.first
}
}
return placemark
}
let myPlacemark = geocode(latitude: 37.3318, longitude: 122.0312)
現状では
、私の方法はnilを返しています。私のエラーがどこにあるのかは分かりませんが、私はそれが何かに驚くほど愚かなことを確信しています。読んでくれてありがとう。
geocoder.reverseGeocodeLocationは非同期です。完了ハンドラが必要です –
ありがとうございます。私はそれを理解することができるかどうかがわかります。 – Adrian
私の投稿が間違っていた。私の編集をチェックしてください。あなたのコードを貼り付けてコピーし、2倍の代わりに2つの場所を渡していたことに気付かなかった –