传递给不接受闭包错误的 'MKCoordinateRegion' 类型参数的尾随闭包
Trailing closure passed to parameter of type 'MKCoordinateRegion' that does not accept a closure Error
我对 swift 有点陌生,我制作了一个应用程序,其中的欢迎页面会将您带到可以添加位置的地图,而另一个 link 会带您前往景点濒危动物网站。在导航 Link 到地图屏幕上,出现“传递给不接受闭包的 'MKCoordinateRegion' 类型参数的尾随闭包”错误,并且 link 不起作用。这是我的代码:
NavigationLink (
"Lets Go!", destination: SwiftUIView()
{
Text("Lets Go!").foregroundColor(.purple)
}).position(x: 165, y: 65)
这是我的屏幕
struct SwiftUIView: View {
@State private var locations =
[Location]()
@State private var input = ""
@State var region = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: 40.7, longitude: -90), span: MKCoordinateSpan(latitudeDelta: 40, longitudeDelta: 40))
var body: some View {
ZStack{
Image("Eco").resizable().aspectRatio(contentMode:.fit).frame(width: 75.0, height: 75.0).position(x: 155, y: 30)
Text("EcoBuild")
Text("Add your own sightings!")
Map(coordinateRegion: $region,annotationItems: locations){
location in MapMarker(coordinate: CLLocationCoordinate2D(latitude: location.latitude, longitude: location.longitude))
}.frame(width: 330.0, height: 400.0).position(x: 160, y: 350)
Link("See other sightings here!", destination:URL(string:"https://www.mass.gov/info-details/rare-species-viewer")!).position(x:150 , y: 75.0)
Button {
let newLocation = Location(id: UUID(), name: "New Location", description: "Animals in area", latitude: region.center.latitude, longitude: region.center.longitude)
locations.append(newLocation)
} label: {
Image(systemName: "plus")
}
}
}
编译器在这里没有给您非常有用的错误消息,但问题是您的 NavigationLink
初始化程序的参数不是很有效。你试图传递一个标题,然后是一个目的地,然后你错过了一个括号(这是有趣的编译器错误的根本原因 - 它认为你的标签是 SwiftUIView
初始值设定项的尾随闭包), 然后你传递一个标签。
你可能想要的是这个:
NavigationLink {
SwiftUIView()
} label: {
Text("Lets Go!").foregroundColor(.purple)
}.position(x: 165, y: 65)
我对 swift 有点陌生,我制作了一个应用程序,其中的欢迎页面会将您带到可以添加位置的地图,而另一个 link 会带您前往景点濒危动物网站。在导航 Link 到地图屏幕上,出现“传递给不接受闭包的 'MKCoordinateRegion' 类型参数的尾随闭包”错误,并且 link 不起作用。这是我的代码:
NavigationLink (
"Lets Go!", destination: SwiftUIView()
{
Text("Lets Go!").foregroundColor(.purple)
}).position(x: 165, y: 65)
这是我的屏幕
struct SwiftUIView: View {
@State private var locations =
[Location]()
@State private var input = ""
@State var region = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: 40.7, longitude: -90), span: MKCoordinateSpan(latitudeDelta: 40, longitudeDelta: 40))
var body: some View {
ZStack{
Image("Eco").resizable().aspectRatio(contentMode:.fit).frame(width: 75.0, height: 75.0).position(x: 155, y: 30)
Text("EcoBuild")
Text("Add your own sightings!")
Map(coordinateRegion: $region,annotationItems: locations){
location in MapMarker(coordinate: CLLocationCoordinate2D(latitude: location.latitude, longitude: location.longitude))
}.frame(width: 330.0, height: 400.0).position(x: 160, y: 350)
Link("See other sightings here!", destination:URL(string:"https://www.mass.gov/info-details/rare-species-viewer")!).position(x:150 , y: 75.0)
Button {
let newLocation = Location(id: UUID(), name: "New Location", description: "Animals in area", latitude: region.center.latitude, longitude: region.center.longitude)
locations.append(newLocation)
} label: {
Image(systemName: "plus")
}
}
}
编译器在这里没有给您非常有用的错误消息,但问题是您的 NavigationLink
初始化程序的参数不是很有效。你试图传递一个标题,然后是一个目的地,然后你错过了一个括号(这是有趣的编译器错误的根本原因 - 它认为你的标签是 SwiftUIView
初始值设定项的尾随闭包), 然后你传递一个标签。
你可能想要的是这个:
NavigationLink {
SwiftUIView()
} label: {
Text("Lets Go!").foregroundColor(.purple)
}.position(x: 165, y: 65)