我无法弄清楚如何激活此功能

时间:2017-09-26 00:59:49

标签: ios swift xcode function

我正在创建一个具有如下所示功能的应用程序:

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'

请帮忙!

1 个答案:

答案 0 :(得分:0)

您需要实例化CLLocationManager对象并将其传入。现在,在您的呼叫网站上,您只需引用类型CLLocationManager,而不是传入CLLocationManager的实例。你在CLLocations的数组中做了同样的事情,但是你通常不会自己实例化这些。您必须将呼叫更改为:

RMC(CLLocationManager(), locations: [])

此外,您在函数中创建新CLLocationManager的第一行是多余的,应该删除,因为它无法使用传入的CLLocationManater对象(它可能是一个编译器错误,但我没有经过测试以确保)