我正在创建一个具有如下所示功能的应用程序:
func RMC(_ manager: CLLocationManager, locations: [CLLocation]) {
let manager = CLLocationManager()
let location = locations[0]
let span:MKCoordinateSpan = MKCoordinateSpanMake(0.001, 0.001)
let myLocation:CLLocationCoordinate2D = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude)
let region:MKCoordinateRegion = MKCoordinateRegionMake(myLocation, span)
let annotation = MKPointAnnotation()
annotation.coordinate = location.coordinate
mapView.setRegion(region, animated: true)
self.mapView.addAnnotation(annotation)
annotation.title = "My Car"
我希望使用以下代码在@IBA函数中激活它:
RMC(CLLocationManager, locations: [CLLocation])
它出现了这个错误:
无法转换类型' CLLocationManager.Type'的值预期参数类型' CLLocationManager'
请帮忙!
答案 0 :(得分:0)
您需要实例化CLLocationManager对象并将其传入。现在,在您的呼叫网站上,您只需引用类型CLLocationManager
,而不是传入CLLocationManager
的实例。你在CLLocations
的数组中做了同样的事情,但是你通常不会自己实例化这些。您必须将呼叫更改为:
RMC(CLLocationManager(), locations: [])
此外,您在函数中创建新CLLocationManager
的第一行是多余的,应该删除,因为它无法使用传入的CLLocationManater
对象(它可能是一个编译器错误,但我没有经过测试以确保)