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

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

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

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

Q&A

解決済

3回答

2090閲覧

Metal API Validation Enabled が出て位置情報が取得できない

katuobot

総合スコア6

Swift

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

0グッド

0クリップ

投稿2020/06/08 12:14

swift

1コード 2import UIKit 3import MapKit 4 5class MapViewController: UIViewController { 6 7 @IBOutlet weak var mapView: MKMapView! 8 //座標の配列 9 let coordinatesArray = [ 10 ["name":"東京駅", "lat":35.68124, "lon": 139.76672], 11 ["name":"皇居外苑", "lat":35.68026, "lon": 139.75801], 12 ["name":"国立劇場", "lat":35.6818, "lon": 139.74326], 13 ["name":"九段下駅", "lat":35.69555, "lon": 139.75074] 14 ] 15 16 override func viewDidLoad() { 17 super.viewDidLoad() 18 self.mapView.delegate = self 19 makeMap() 20 } 21 22 func makeMap(){ 23 //マップの表示域を設定 24 let coordinate = CLLocationCoordinate2DMake(coordinatesArray[0]["lat"] as! CLLocationDegrees, coordinatesArray[0]["lon"] as! CLLocationDegrees) 25 let span = MKCoordinateSpan(latitudeDelta: 0.05, longitudeDelta: 0.05) 26 let region = MKCoordinateRegion(center: coordinate, span: span) 27 self.mapView.setRegion(region, animated: true) 28 29 30 var routeCoordinates: [CLLocationCoordinate2D] = [] 31 for i in 0..<coordinatesArray.count { 32 let annotation = MKPointAnnotation() 33 let annotationCoordinate = CLLocationCoordinate2DMake(coordinatesArray[i]["lat"] as! CLLocationDegrees, coordinatesArray[i]["lon"] as! CLLocationDegrees) 34 annotation.title = coordinatesArray[i]["name"] as? String //ピンの吹き出しに名前が出るように 35 annotation.coordinate = annotationCoordinate 36 routeCoordinates.append(annotationCoordinate) 37 self.mapView.addAnnotation(annotation) 38 } 39 var myRoute: MKRoute! 40 let directionsRequest = MKDirections.Request() 41 var placemarks = [MKMapItem]() 42 //routeCoordinatesの配列からMKMapItemの配列にに変換 43 for item in routeCoordinates{ 44 let placemark = MKPlacemark(coordinate: item, addressDictionary: nil) 45 placemarks.append(MKMapItem(placemark: placemark)) 46 } 47 directionsRequest.transportType = .walking //移動手段は徒歩 48 for (k, item) in placemarks.enumerated(){ 49 if k < (placemarks.count - 1){ 50 directionsRequest.source = item //スタート地点 51 directionsRequest.destination = placemarks[k + 1] //目標地点 52 let direction = MKDirections(request: directionsRequest) 53 direction.calculate(completionHandler: {(response, error) in 54 if error == nil { 55 myRoute = response?.routes[0] 56 self.mapView.addOverlay(myRoute.polyline, level: .aboveRoads) //mapViewに絵画 57 } 58 }) 59 } 60 } 61 } 62} 63 64extension MapViewController:MKMapViewDelegate { 65 66 func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? { 67 if annotation is MKUserLocation { 68 return nil 69 } 70 let reuseId = "pin" 71 var pinView = mapView.dequeueReusableAnnotationView(withIdentifier: reuseId) 72 if pinView == nil { 73 pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId) 74 pinView?.canShowCallout = true //吹き出しで情報を表示出来るように 75 }else{ 76 pinView?.annotation = annotation 77 } 78 return pinView 79 } 80 81 //ピンを繋げている線の幅や色を調整 82 func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer { 83 let route: MKPolyline = overlay as! MKPolyline 84 let routeRenderer = MKPolylineRenderer(polyline: route) 85 routeRenderer.strokeColor = UIColor(red:1.00, green:0.35, blue:0.30, alpha:1.0) 86 routeRenderer.lineWidth = 3.0 87 return routeRenderer 88 } 89 90}

Metal API Validation Enabledが出てしまいます。
直し方ご教授お願いします。
macOs catalina
xcode 11.5
ios13.5

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

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

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

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

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

guest

回答3

0

自己解決

解決になっているのかわかりませんが、
product/scheme/editschemeのRun/option内のMetal API VaMetal API Validationをdisableにしたらエラーが出なくなりました。

投稿2020/06/09 11:48

katuobot

総合スコア6

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

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

tsuki01

2020/06/09 12:22 編集

確認遅れて失礼しました。お役に立てず申し訳ありませんでした。 質問者様の対応で結果的に地図や現在地が表示される様になったのなら良かったです。
guest

0

サイトのやり方と実機テストでやりましたが、変わらなかったです。

投稿2020/06/08 22:59

katuobot

総合スコア6

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

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

0

シミュレータで動作確認している様でしたら、以下と同じ問題かもしれません。
以下リンク先に記載されているように、
シミュレータの Debug > Location から適当な地名を選んでたら改善しませんでしょうか。

xcode 現在地が表示されない

投稿2020/06/08 15:50

tsuki01

総合スコア1751

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問