XCode 6.3 MKPointAnnotation setCoordinate отсутствует

Я только что обновил XCode до 6.3, и теперь я получаю следующую ошибку: MKPointAnnotation не имеет члена с именем «setCoordinate».

Не уверен, куда он делся, или мы должны использовать какой-то другой метод МК. Любая помощь приветствуется.

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

    }

person Christopher Wade Cantley    schedule 09.04.2015    source источник


Ответы (1)


Как указано в отличиях API iOS 8.3 в модуле MapKit, setCoordinate метод был удален:

Удалено MKAnnotation.setCoordinate(CLLocationCoordinate2D)


К счастью, теперь вы должны использовать более простой синтаксис присваивания (который уже был доступен в предыдущих версиях Swift и то же самое можно было сделать в Objective-C):

annotation.coordinate = location
person Community    schedule 10.04.2015
comment
Спасибо, я просмотрю этот документ. - person Christopher Wade Cantley; 10.04.2015
comment
координата является свойством только для чтения, поэтому после первоначальной установки вы не можете изменить его напрямую. - person Wedge Martin; 10.11.2015
comment
Поскольку он доступен только для чтения, что вам нужно сделать, чтобы изменить coordinate? - person carsol; 09.07.2016
comment
Согласно документам Apple, coordinate предназначен для чтения и записи для Swift. developer.apple.com/documentation/mapkit/mkpointannotation/ - person Jeff Muir; 30.10.2017