質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

1回答

372閲覧

なぜ緯度と経度が出力されないのでしょうか?

clo.momo

総合スコア27

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2018/05/26 06:31

編集2018/05/26 07:18

シミュレータでDebug > Location > City Run を選択しても位置情報を出力しないのはなぜでしょうか?
ViewController.swiftは初期状態。
下記はLocationService.swiftに記述しているコードです。

このサイトを参考にしています。 位置情報を正確にトラッキングする技術 in iOS — (第2回)位置情報の取得

これはボクのXcodenoです
書いてるファイルが間違ってたりするかもしれないので、画像を載せてみました
Xcodeの画像

ファイル名
現在のコード

Swift

1import UIKit 2import CoreLocation 3 4class LocationService: NSObject, CLLocationManagerDelegate { 5 6 let locationManager = CLLocationManager() 7 8 override init() { 9 10 locationManager.desiredAccuracy = kCLLocationAccuracyKilometer 11 locationManager.requestWhenInUseAuthorization() 12 13 super.init() 14 locationManager.delegate = self 15 locationManager.startUpdatingLocation() 16 } 17 18 func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]){ 19 20 if let newLocation = locations.last { 21 print("((newLocation.coordinate.latitude),(newLocation.coordinate.latitude))") 22 } 23 } 24}

最初のコード

Swift

1import Foundation 2import CoreLocation 3 4class LocationService:NSObject,CLLocationManagerDelegate { 5 6 override init() { 7 let locationManager = CLLocationManager() 8 locationManager.desiredAccuracy = kCLLocationAccuracyKilometer 9 locationManager.requestWhenInUseAuthorization() 10 11 super.init() 12 locationManager.delegate = self 13 14 func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]){ 15 16 if let newLocation = locations.last { 17 print("((newLocation.coordinate.latitude),(newLocation.coordinate.latitude))") 18 } 19 20 } 21 22 } 23 24} 25

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

動かない理由
init()の中にCLLocationManagerDelegateのメソッドを記述しないでください。メソッドの中に記述したメソッドなのでここに書いても呼び出されません。

locationManager.startUpdatingLocation()を呼ばないとlocationManagerの監視が動かないです。 リンクのサイトの説明には書いてないっぽいのですが、サンプルのソースを見ると書いてありますのでそちらを参考にしてください。

swift

1 2import UIKit 3import CoreLocation 4 5class LocationService: NSObject, CLLocationManagerDelegate { 6 7 let locationManager = CLLocationManager() 8 9 override init() { 10 11 locationManager.desiredAccuracy = kCLLocationAccuracyKilometer 12 locationManager.requestWhenInUseAuthorization() 13 14 super.init() 15 locationManager.delegate = self 16 locationManager.startUpdatingLocation() 17 } 18 19 func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]){ 20 21 if let newLocation = locations.last { 22 print("((newLocation.coordinate.latitude),(newLocation.coordinate.latitude))") 23 } 24 } 25}

投稿2018/05/26 06:56

編集2018/05/26 07:10
_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

clo.momo

2018/05/26 07:20

提示していただいたコードを試してみたのですが、やっぱり出力されません。 現在のXcodeの画像を見て、おかしなところはないでしょうか?
_Kentarou

2018/05/26 07:27 編集

起動時に位置情報の許可ダイアログは出ましたか? あとこのクラスをViewControllerか何かで初期化してますよね。
clo.momo

2018/05/26 07:26

出ていません
_Kentarou

2018/05/26 07:28

plistに記述しなければいけない事があるのですが、それはサイトに載っていたと思うのでもう一度見てみて下さい。
clo.momo

2018/05/26 07:43

plistのKeyに”Privacy — Location When in Use…”、Valueに"Use CoreLocation"を入力したけどダメでした。
clo.momo

2018/05/26 07:57

もしかしたら、ViewController.swiftじゃなくてLocationService.swiftに書いてたのが原因だったかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問