Swiftui 地图标记缺少参数错误

Swiftui mapmarker missing arguments error

我正在 swiftui 中制作应用程序,我添加了地图,但我在使用 mapmarker 时遇到问题,你能帮忙吗?

错误在代码部分的底部。

//
//  depremHaritasi.swift
//  deprembilgisistemi
//
//  Created by Tugay Asan on 1.03.2022.
//

import SwiftUI
import MapKit


struct depremHaritasi: View {

    
    let id: UUID
        let location: CLLocationCoordinate2D
        init(id: UUID = UUID(), lat: Double, long: Double) {
            self.id = id
            self.location = CLLocationCoordinate2D(
                latitude: lat,
                longitude: long)
        }
    
        @State var quakes: [EarthQuake] = []
    
        @State var coordinateRegion = MKCoordinateRegion(
              center: CLLocationCoordinate2D(latitude: 38.9520281, longitude: 35.6980142),
              span: MKCoordinateSpan(latitudeDelta: 30, longitudeDelta: 10))

            var body: some View {
                Map(coordinateRegion: $coordinateRegion)
                .edgesIgnoringSafeArea(.all)
                .onAppear {
                Api().getEarthQuake { (quakes) in
                    self.quakes = quakes
                }
            }
    }
}


struct depremHaritasi_Previews: PreviewProvider {
    static var previews: some View {
        depremHaritas()   //ERROR//Missing arguments for parameters 'lat', 'long' in call
    }
}

我尝试添加地图标记,但出现“缺少参数”错误。我尝试查看不同的论坛,但没有用。我想让地图标记出现在地图上。

struct depremHaritas init 有 3 个参数 id ,latlong .参数 id 有默认值,因此可以跳过,但是,lat 和 long 没有默认值。您必须在初始化时明确提供值。

init(id: UUID = UUID(), lat: Double, long: Double)

所以,您的代码应该是:

struct depremHaritasi_Previews: PreviewProvider {
    static var previews: some View {
        depremHaritas(lat:0.0 , long:0.0)
    }
}

或者另一种方法是在 init 中为 lat 和 long 参数提供默认值,如下所示:

init(id: UUID = UUID(), lat: Double = 0.0, long: Double = 0.0)

在这种情况下,您的调用不会遇到错误。