2015-04-09 12 views
15

Ich habe gerade XCode auf 6.3 aktualisiert und erhalte jetzt den folgenden Fehler: MKPointAnnotation hat kein Mitglied namens 'setCoordinate'.XCode 6.3 MKPointAnnotation setCoordinate fehlt

Nicht sicher, wo es ging, oder wenn wir angeblich eine andere MK-Methode zu verwenden. Jede Hilfe wird geschätzt.

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 

    } 

Antwort

21

Wie in den iOS 8.3 API Diffs in the MapKit module angegeben wurden die setCoordinate Verfahren entfernt:

Removed MKAnnotation.setCoordinate(CLLocationCoordinate2D)


Zum Glück muss jetzt, können Sie die einfachere Zuordnung Syntax (die in früheren Versionen von Swift bereits verfügbar war verwenden und die dasselbe könnte in Objective-C getan werden):

annotation.coordinate = location 
+0

Danke, ich werde das Dokument überprüfen. –

+2

Koordinate ist eine schreibgeschützte Eigenschaft, so dass Sie sie nach der ersten Einstellung nicht direkt ändern können. –

+1

Da es schreibgeschützt ist, was sollten Sie tun, um "Koordinaten" zu ändern? – carsol

Verwandte Themen