尝试将某些位置固定在 MapView 上时传递给不带参数的调用的参数

Posted

技术标签:

【中文标题】尝试将某些位置固定在 MapView 上时传递给不带参数的调用的参数【英文标题】:Argument passed to call that takes no arguments when trying to pin some locations on a MapView 【发布时间】:2021-12-30 19:06:31 【问题描述】:

我收到此错误,但不知道原因。 你能帮帮我吗?

struct Locs: Identifiable 
    let id = UUID()
    let name = String()
    let coord = CLLocationCoordinate2D()
    let alarm = Int()
    let state = Int()
    let radius = Int()
    
    


struct MapView: View 
    
    @State private var region = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: 5.55613, longitude: 95.3218), span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01))
    let annotations = [
            Locs(name: "Sultan Hotel", coord: CLLocationCoordinate2D(latitude: 5.55739, longitude: 95.3208), alarm: 0, state: 0, radius: 1),
            Locs(name: "Paparon Pizza Lhokseumawe", coord: CLLocationCoordinate2D(latitude: 5.17837, longitude: 97.1484), alarm: 0, state: 1, radius: 2)
    
    
    ]

【问题讨论】:

【参考方案1】:

您不能在init 之外提供默认值,除非您希望将属性声明为var

要么:

    不要有默认值(除非它不会改变并且不需要成员 init
struct Locs: Identifiable 
    let id = UUID()
    let name: String
    let coord: CLLocationCoordinate2D
    let alarm: Int
    let state: Int
    let radius: Int

    具有自定义init 的默认值
struct Locs: Identifiable 
    let id = UUID()
    let name: String
    let coord: CLLocationCoordinate2D
    let alarm: Int
    let state: Int
    let radius: Int

    init(name: String = "some default name", coord: CLLocationCoordinate2D, alarm: Int, state: Int, radius: Int) 
        self.name = name
        self.coord = coord
        self.alarm = alarm
        self.state = state
        self.radius = radius
    

【讨论】:

谢谢,现在可以使用了

以上是关于尝试将某些位置固定在 MapView 上时传递给不带参数的调用的参数的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 4 中传递给不带参数的调用的参数

如何将任务结果传递给不使用延续的其他任务

如何在 Android 的 MapView 中更新当前位置的蓝点标记

将UL的位置设置为固定,下拉菜单不起作用

如何在 MapView 上点击然后将其传递给默认手势识别器?

在 ListView 中新的 gms.maps.MapView 渲染有点滞后?