2015-04-09 3 views
15

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

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

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 

    } 

ответ

21

Как указано в iOS 8.3 API Diffs in the MapKit module, метод setCoordinate был удален:

Removed MKAnnotation.setCoordinate(CLLocationCoordinate2D)


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

annotation.coordinate = location 
+0

Спасибо, я рассмотрю этот документ. –

+2

Координата - это свойство только для чтения, поэтому после первоначальной установки вы не можете напрямую ее изменить. –

+1

Поскольку это только для чтения, что вы должны сделать, чтобы изменить «координаты»? – carsol