问题
I just updated XCode to 6.3 and now I am receiving the below error: MKPointAnnotation does not have a member named 'setCoordinate'.
Not sure where it went, or if we are supposed to use some other MK method. Any help is appreciated.
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
}
回答1:
As stated in the iOS 8.3 API Diffs in the MapKit module, the setCoordinate
method was removed:
Removed MKAnnotation.setCoordinate(CLLocationCoordinate2D)
Fortunately, you must now use the simpler assignment syntax (which was already available in previous versions of Swift and the same could be done in Objective-C):
annotation.coordinate = location
来源:https://stackoverflow.com/questions/29548143/xcode-6-3-mkpointannotation-setcoordinate-missing