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

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

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

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

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

iPhone

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

Q&A

解決済

1回答

810閲覧

Xcodeのエラーについて

kenta1120

総合スコア39

iOS

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

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

iPhone

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

0グッド

0クリップ

投稿2022/03/10 01:35

Swift初心者です。
現在、書籍を利用してアプリ開発の為の学習をしております。

以下のエラーが発生したのですが、その解決策を教えて頂きたいです。
イメージ説明

また、書籍では
「MapView.swift」のファイルに「let mapType: MKMapType」を追加するとエラーが解消される。と記載があるのですが、特に変らない状態です。

【解決の為にしたこと】
・スペルの書き間違いがないか確認
・書籍を読み直し、コードの記述漏れがないか確認
・エラー文章をコピペして検索
・書籍の内容に関する記事を検索
と、同じような箇所でエラーが出た人がいて記事に残していないかを探したりもしましたが分かりません。
また、エラー内容をコピペしても何を意味している内容なのかが理解できていない状態です。

以下、コード内容です。

ContentView.swift

1import SwiftUI 2import MapKit 3 4struct ContentView: View { 5 6 // 入力中の文字列を保持する状態変数 7 @State var inputText: String = "" 8 // 検索キーワードを保持する状態変数 9 @State var dispSearchKey: String = "" 10 // マップ種類の最初は標準から 11 @State var dispMapType: MKMapType = .standard 12 13 var body: some View { 14 //垂直にレイアウト (縦方向にレイアウト) 15 VStack { 16 //テキストフィールド(文字入力) 17 TextField("キーワード", text: $inputText, prompt: Text("キーワードを入力してください")) 18 //入力が完了されたとき 19 .onSubmit { 20 //入力が完了したので検索キーワードに設定する 21 dispSearchKey = inputText 22 } 23 // 余白を追加 24 .padding() 25 26 // 奥から手前方向にレイアウト (右下基準で配置する) 27 ZStack(alignment: .bottomTrailing) { 28 //マップを表示 29 MapView(searchKey: dispSearchKey, MapType: dispMapType) 30 31 //マップ種類切り替えボタン 32 Button(action: { 33 // mapTypeプロパティ値をトグル 34 //標準 → 航空写真 → 航空写真+標準 35 // → 3D Flyover → 3D Flyover+標準 36 // → 交通機関 37 if dispMapType == .standard { 38 dispMapType = .satellite 39 } else if dispMapType == .satellite { 40 dispMapType = .hybrid 41 } else if dispMapType == .hybrid { 42 dispMapType = .satelliteFlyover 43 } else if dispMapType == .satelliteFlyover { 44 dispMapType = .hybridFlyover 45 } else if dispMapType == .hybridFlyover { 46 dispMapType = .mutedStandard 47 } else { 48 dispMapType = .standard 49 } 50 51 }) { 52 //マップアイコン表示 53 Image(systemName: "map") 54 .resizable() 55 .frame(width: 35.0, height: 35.0, alignment: .leading) 56 } //Button ここまで 57 // 右の余白を20空ける 58 .padding(.trailing, 20.0) 59 // 下の余白を30空ける 60 .padding(.bottom, 30.0) 61 } // ZStack ここまで 62 63 } // VStack ここまで 64 } 65} 66 67struct ContentView_Previews: PreviewProvider { 68 static var previews: some View { 69 ContentView() 70 } 71} 72

MapView.swift

1import SwiftUI 2import MapKit 3 4struct MapView: UIViewRepresentable { 5 6 //検索キーワード 7 let searchKey: String 8 9 //マップ種類 10 let mapType: MKMapType 11 12 //表示する View を作成するときに実行 13 func makeUIView(context: Context) -> MKMapView { 14 //MKMapViewのインスタンス作成 15 MKMapView() 16 }// makeUIView ここまで 17 18 // 表示した View が更新されるたびに実行 19 func updateUIView(_ uiView: MKMapView, context: Context) { 20 21 //入力された文字をデバックエリアに表示 22 print(searchKey) 23 24 //マップ種類の設定 25 uiView.mapType = mapType 26 27 // CLGecoderインスタンスを取得 28 let geocoder = CLGeocoder() 29 30 //入力された文字から位置情報を取得 31 geocoder.geocodeAddressString( 32 searchKey , 33 completionHandler: { (placemarks, error) in 34 //リクエストの結果が存在し、1件目の情報から位置情報を取り出す 35 if let unwrapPlacemarks = placemarks , 36 let firstPlacemark = unwrapPlacemarks.first , 37 let location = firstPlacemark.location { 38 39 //位置情報から緯度経度をtargetCoordinateに取り出す 40 let targetCoordinate = location.coordinate 41 42 //緯度経度をデバックエリアに表示 43 print(targetCoordinate) 44 45 // MKPointAnnotationインスタンスを取得し、ピンを生成 46 let pin = MKPointAnnotation() 47 48 // ピンを置く場所に緯度経度を設定 49 pin.coordinate = targetCoordinate 50 51 //ピンのタイトルを設定 52 pin.title = searchKey 53 54 // ピンを地図に置く 55 uiView.addAnnotation(pin) 56 57 //緯度経度を中心にして半径500mの範囲を表示 58 uiView.region = MKCoordinateRegion( 59 center: targetCoordinate, 60 latitudinalMeters: 500.0, 61 longitudinalMeters: 500.0) 62 63 } // if ここまで 64 65 }) // geocoder ここまで 66 67 }// updataUIView ここまで 68 69} // MapView ここまで 70 71struct MapView_Previews: PreviewProvider { 72 static var previews: some View { 73 MapView(searchKey: "東京タワー", mapType: .standard) 74 } 75} 76

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

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

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

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

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

1T2R3M4

2022/03/10 01:50

エラーメッセージの内容は対応してみましたか。
guest

回答1

0

ベストアンサー

エラーメッセージを読んでください。

誤:MapView(searchKey: dispSearchKey, MapType: dispMapType)
正:MapView(searchKey: dispSearchKey, mapType: dispMapType)

投稿2022/03/10 02:03

technocore

総合スコア7200

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

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

kenta1120

2022/03/10 04:15

Mの大文字と小文字の違いだったんですね。 また、改めてエラー文を翻訳してみてその意味が分かりました。 大変助かりました! ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問