我对Swift很陌生,遇到了一个令人费解的错误。
我在视图中有一个菜单:
Menu("Report an issue")
{
Button("Pothole", action: passReport(rtype: "Pothole"))
Button("Street Obstruction", action: passReport(rtype: "Street Obstruction"))
Button("Weather Damage", action: passReport(rtype: "Weather Damage"))
Button("Vehicular Accident", action: passReport(rtype: "Vehicular Accident"))
Button("Other Issue", action: passReport(rtype: "Other Issue"))
}
然后,在此视图中定义一个名为passReport的函数,如下所示:
func passReport(rtype: String)
{
let lat1:String = "\(LocationHelper.currentLocation.latitude)"
let long1:String = "\(LocationHelper.currentLocation.longitude)"
dataManager.addReport(id: "ID goes here", latitude: lat1, longitude: long1, reportType: rtype)
}
我收到错误:Cannot convert value of type '()' to expected argument type '() -> Void'
在我的菜单中的所有五行上,直到最近,这个函数没有参数,工作得很好,我最近添加了reportType字段到我的dataManager,并添加了一个参数到函数,现在它不工作了。我确信这是简单的,我检查了其他问题,但他们没有回答我的问题。谢谢
1条答案
按热度按时间bkhjykvo1#
你需要传递一个闭包给button动作,而不是像现在这样void。
你可以试试