XCode 6.3 MKPointAnnotation setCoordinate缺失

Chr*_*ley 17 xcode ios mkpointannotation swift

我刚刚将XCode更新为6.3,现在我收到以下错误:MKPointAnnotation没有名为'setCoordinate'的成员.

不知道它去了哪里,或者我们是否应该使用其他MK方法.任何帮助表示赞赏.

func refreshlocation(lat:String, lon:String, withOffset:Bool = false){


        // 1 Convert the string values to something that can be used.
        let location = CLLocationCoordinate2D(
            latitude: (lat as NSString).doubleValue as CLLocationDegrees,
            longitude: (lon as NSString).doubleValue as CLLocationDegrees
        )

        // 2 setup some initial variables.
        let span = MKCoordinateSpanMake(
            (self.locationLatitudeDelta as NSString).doubleValue as CLLocationDegrees,
            (self.locationLongitudeDelta as NSString).doubleValue as CLLocationDegrees
        )

        let region = MKCoordinateRegion(center: location, span: span)
        mapView.setRegion(region, animated: true)

        //3 decorate the point and add the point to the map.
        var annotation = MKPointAnnotation()
        annotation.setCoordinate(location) //Error on this line

    }
Run Code Online (Sandbox Code Playgroud)

小智 23

MapKit模块中的iOS 8.3 API Diffs所述,该setCoordinate方法已被删除:

删除了 MKAnnotation.setCoordinate(CLLocationCoordinate2D)


幸运的是,您现在必须使用更简单的赋值语法(在Swift的早期版本中已经可以使用,并且可以在Objective-C中完成相同的操作):

annotation.coordinate = location
Run Code Online (Sandbox Code Playgroud)

  • coordinate是一个只读属性,因此在初始设置后,您无法直接更改它. (3认同)