2015-04-09 7 views
15

Ho appena aggiornato XCode a 6.3 e ora sto ricevendo l'errore seguente: MKPointAnnotation non ha un membro denominato 'setCoordinate'.XCode 6.3 MKPointAnnotation setCoordinate missing

Non so dove sia andato, o se dovremmo usare qualche altro metodo MK. Qualsiasi aiuto è apprezzato.

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 

    } 

risposta

21

Come indicato nel iOS 8.3 API Diffs in the MapKit module, il metodo setCoordinate è stato rimosso:

Removed MKAnnotation.setCoordinate(CLLocationCoordinate2D)


Fortunatamente, ora è necessario utilizzare la sintassi di assegnazione più semplice (che era già disponibile nelle precedenti versioni di Swift e il lo stesso potrebbe essere fatto in Objective-C):

annotation.coordinate = location 
+0

Grazie, lo esaminerò doc. La coordinata –

+2

è una proprietà di sola lettura, quindi dopo averlo impostato inizialmente non è possibile modificarlo direttamente. –

+1

Poiché è di sola lettura, cosa dovresti fare per cambiare le coordinate? – carsol