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

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

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

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

Swift

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

Q&A

0回答

196閲覧

地図アプリ 現在位置取得の際

blackinnovator

総合スコア9

iOS

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

Swift

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

0グッド

0クリップ

投稿2018/01/19 07:23

###前提・実現したいこと

(例)現在位置取得のシステムを作っています。
認証が変更された時に呼び出されるメソッド? な機能を実装中に以下のエラーメッセージが発生しました。

###発生している問題・エラーメッセージ

Editor placeholder in source file

###該当のソースコード

import UIKit import MapKit import CoreLocation //シュミレーター上でMapの拡大縮小は、Optionを押しながらトラックパッドを操作することで可能 //Info.plistの編集 // Key: NSLocationAlwaysUsageDescription // Type: String // Value: Use CoreLocation! class ViewController: UIViewController, CLLocationManagerDelegate { //MapViewの生成 let myMapView = MKMapView() //LocationManagerの生成(viewDidLoadの外に指定してあげることで、デリゲートメソッドの中でもmyLocationManagerを使用できる) let myLocationManager = CLLocationManager() override func viewDidLoad() { super.viewDidLoad() //ここからがMapView生成の処理 //.frameでサイズと位置を指定する myMapView.frame = self.view.frame self.view.addSubview(myMapView) //長押しを探知する機能を追加 let longTapGesture = UILongPressGestureRecognizer() longTapGesture.addTarget(self, action: Selector(("longPressed:"))) myMapView.addGestureRecognizer(longTapGesture) //ここからが現在地取得の処理 myLocationManager.delegate = self // セキュリティ認証のステータスを取得 let status = CLLocationManager.authorizationStatus() if status == CLAuthorizationStatus.notDetermined { // まだ承認が得られていない場合は、認証ダイアログを表示 myLocationManager.requestAlwaysAuthorization() } // 位置情報の更新を開始 myLocationManager.startUpdatingLocation() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } //長押しした時にピンを置く処理 func longPressed(sender: UILongPressGestureRecognizer) { //この処理を書くことにより、指を離したときだけ反応するようにする(何回も呼び出されないようになる。最後の話したタイミングで呼ばれる) if sender.state != UIGestureRecognizerState.began { return } //senderから長押しした地図上の座標を取得 let tappedLocation = sender.location(in: myMapView) let tappedPoint = myMapView.convert(tappedLocation, toCoordinateFrom: myMapView) //ピンの生成 let pin = MKPointAnnotation() //ピンを置く場所を指定 pin.coordinate = tappedPoint //ピンのタイトルを設定 pin.title = "タイトル" //ピンのサブタイトルの設定 pin.subtitle = "サブタイトル" //ピンをMapViewの上に置く self.myMapView.addAnnotation(pin) } // GPSから値を取得した際に呼び出されるメソッド func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { // 配列から現在座標を取得(配列locationsの中から最新のものを取得する) let myLocation = locations.last! as CLLocation //Pinに表示するためにはCLLocationCoordinate2Dに変換してあげる必要がある let currentLocation = myLocation.coordinate //ピンの生成と配置 let pin = MKPointAnnotation() pin.coordinate = currentLocation pin.title = "現在地" self.myMapView.addAnnotation(pin) //アプリ起動時の表示領域の設定 //delta数字を大きくすると表示領域も広がる。数字を小さくするとより詳細な地図が得られる。 let mySpan = MKCoordinateSpan(latitudeDelta: 0.05, longitudeDelta: 0.05) let myRegion = MKCoordinateRegionMake(currentLocation, mySpan) myMapView.region = myRegion } //GPSの取得に失敗したときの処理 private func locationManager(manager: CLLocationManager, didFailWithError error: NSError) { print(error) } }

###試したこと
xcodeのfix機能を使ったり調べましたがわかりませんでした

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問