0

私は Swift でコーディングしており、アプリでユーザーの位置情報を使用したいと考えています。私はすでにNSLocationWhenInUseUsageDescriptionとを追加NSLocationAlwaysUsageDescriptionInfo.plist、適切に構成しました。また、CoreLocation.framework を追加し、ViewController にインポートしました。CLLocationManagerDelegateクラス定義でも使用しています。メソッドを実装しました。didChangeAuthorizationStatusこれは、ユーザーが自分の場所をアプリに提供することを許可することを選択したときに機能します。これが起こったときにコンソールにテキストを出力して確認しました。ただし、didUpdateLocationsコンソールに出力した直後にこのメソッドからメソッドを呼び出すと、メソッドは実行されず、コンソールに新しいものは何も出力されません。didUpdateLocationsこれを確認するためだけに、メソッドに印刷コマンドを含めるようにしました。これは、メソッドの 1 つのコードです。

func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
    if status == .AuthorizedWhenInUse {
        print("permission granted")
        locationManager.startUpdatingLocation()
    } else {
        print(status)
    }
}

ご覧のとおり、メソッド内でlocationManager.startUpdatingLocation()が呼び出され、それを開始することになっています。このメソッドのコードは次のとおりです。

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    print(locations)
}

ただし、アプリで許可を求められたときに [許可] を押すと、最初のメソッドで呼び出された「許可が付与されました」以外はコンソールに何も出力されません。これを修正するにはどうすればよいですか? どんな助けでも大歓迎です!

編集:

まあ、実際には、シミュレータ電話で動きをシミュレートすることで問題を修正しました。[デバッグ] をクリックし、[場所] にカーソルを合わせて、移動の形式を選択するだけです!

4

0 に答える 0