実現したいこと
Swift初心者です。躓いてしまいました。お助け願います。
エラーが出てしまいます。マップアプリ作成のマップの種類をMapViewに渡したいです。ContentViewにMapViewのmapTypeを呼び出したいのですが、エラーはどう解決できるのでしょうか?
初歩的な質問で申し訳ございません。
前提
.初学者で、本を読みながらマップアプリ作成を行っています。
●調査、試したこと
.大文字小文字等スペルの間違いがないか確認しました。
.エラーコードを翻訳し意味を調べました。
.いくつかネットに書いてあったものを実践してみました。
.全体のコードも見直しました。
以下エラーが発生しました。
該当箇所はこちらと思われます。Map View
ContentView
エラーが出ているMapView
import SwiftUI import MapKit enum MapType { case standard case satellite case hybrid } struct MapView: UIViewRepresentable { let searchKey: String let mapType: MapType func makeUIView(context: Context) -> MKMapView { MKMapView() } func updateUIView(_ uiView: MKMapView, context: Context) { print("検索キーワード:\(searchKey)") let geocoder = CLGeocoder() geocoder.geocodeAddressString(searchKey, completionHandler: { (placemarks, error) in if let placemarks, let firstPlacemark = placemarks.first, let location = firstPlacemark.location{ let targetCoordinate = location.coordinate print("緯度経度:\(targetCoordinate)") let pin = MKPointAnnotation() pin.coordinate = targetCoordinate pin.title = searchKey uiView.addAnnotation(pin) uiView.region = MKCoordinateRegion( center: targetCoordinate, latitudinalMeters: 500.0, longitudinalMeters: 500.0) }//if })//geocoder }//update struct MapView_Previews: PreviewProvider { static var previews: some View { MapView(searchKey: "羽田空港") } } }
ContentView
import SwiftUI struct ContentView: View { @State var inputText: String = "" @State var displaySearchkey: String = "" @State var displayMapType: MapType = .standard var body: some View { VStack{ TextField("キーワード", text: $inputText,prompt: Text("キーワードを入力してください")) .onSubmit { displaySearchkey = inputText } .padding() ZStack(alignment: .bottomTrailing) { MapView(searchKey: displaySearchkey, mapType: displayMapType) Button { if displayMapType == .standard{ displayMapType = .satellite } else if displayMapType == .satellite { displayMapType = .hybrid } else { displayMapType = .standard } } label: { Image(systemName: "map") .resizable() .frame(width: 35.0, height: 35.0) }//Botton .padding(.trailing, 20.0) .padding(.bottom, 30.0) }//zstack }//vstack }//body struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } }
当サイトで似た質問を発見しそちらも試したのですがエラーのままでした。
解決の手助けをお願いできませんでしょうか。