ボタンを押したときにユーザーの所在地を取得しようとしていますが、場所コードの設定に問題があります。私はStackoverflowの様々な答えの間に見てきましたが、私のために働くことは何もできません。Swiftでワンタイムユーザーの場所を取得できない
class MyViewController: UIViewController, CLLocationManagerDelegate {
var locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
}
func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if status == .AuthorizedAlways || status == .AuthorizedWhenInUse {
let latitude = self.locationManager.location?.coordinate.latitude
let longitude = self.locationManager.location?.coordinate.longitude
print("coordinates:")
print(latitude)
print(longitude)
}
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let locationValue : CLLocationCoordinate2D = manager.location!.coordinate
print("locations = \(locationValue.latitude) \(locationValue.longitude)")
}
私はちょうどdidChangeAuthorizationStatus
に印刷物からのNILSを取得し、何が今までdidUpdateLocations
から印刷しませんが。また、私は実際にstartUpdatingLocation()
をどこに置くのか混乱しています。いくつかの回答は、私がここにあるようにviewDidLoad
に直接置くものもあれば、didChangeAuthorizationStatus
に置くものもあればdidLoadのif CLLocationManager.locationServicesEnabled()
の中に別の場所を見たものもあります。これを行う正しい方法は何ですか?また、私は何が間違っていて、私は何か価値のある印刷をしていないのですか?私はエミュレータ上で実行している場所をオンにして、ポップアップで許可を許可し、エミュレータを緯度/経度のカスタム位置に設定して、pListに値を追加しました。
編集:even tried copy/pasting the code from this to get user's location only onceですが、(kCLErrorDomain error 0.)
を返します。彼らのコードに 'requestWhenInUseAuthorization() `を追加しましたが、それでも失敗します。我々はまだ場所を持っていないので
動作するコードを確認するのに役立ちますか? 'requestLocation'についてはhttps://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch22p773location/ch35p1032location/ViewController.swift – matt
のように、これを私の編集で追加しましたが、これを試してみました。失敗として現れます。 https://www.hackingwithswift.com/example-code/location/how-to-request-a-users-location-only-once-using-requestlocation私はエミュレータで設定された場所を持っていますが、それは動作しませんか?私は私のiPhoneを接続しようとすると、その異なる場合は –
クール、それが役立つかどうか私に教えてください。 – matt