Próbuję narysować łamaną na mapie Swift 2. To wszystko działa dobrze, ale pojawia się ostrzeżenie kompilatora na ten kod:Swift 2 MKMapViewDelegate rendererForOverlay ostrzeżenie kompilatora
func mapView(mapView: MKMapView!, rendererForOverlay overlay: MKOverlay!) -> MKOverlayRenderer! {
if overlay is MKPolyline {
let polylineRenderer = MKPolylineRenderer(overlay: overlay)
polylineRenderer.strokeColor = UIColor.redColor()
polylineRenderer.lineWidth = 5
return polylineRenderer
}
return nil
}
Będzie mi dać ostrzeżenie mówi, że „Wynik i parametry MapView (rendererForOverlay) mają różną opcjonalność niż oczekiwane przez protokół MKMapViewDelegate”
teraz będzie to skompilować w porządku, ale robaki mnie, że ostrzeżenie kompilatora jest wyświetlana.
Gdybym zmienić pierwszą linię do
func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer {
poprzez usunięcie!, Ostrzeżenie odejdzie, ale pojawia się błąd, że zwrot nie może być zerowa, a kod nie zostanie skompilowany już.
Jest to również śledzić ten wątek, gdzie ten sam problem został podany, ale nie satysfakcjonująca odpowiedź jest dostępny: Swift 2 MKMapViewDelegate rendererForOverlay optionality
Czy ktoś może rzucić jakieś światło na właściwej drodze, aby korzystać z tej funkcji już w Swift 2?
Dzięki.
Dzięki za to. Dzięki temu kod działa i pozbywa się ostrzeżeń. –
return nil daje błąd. więc pomóż mi –