尝试将某些位置固定在 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 上时传递给不带参数的调用的参数的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android 的 MapView 中更新当前位置的蓝点标记