2015-12-03 3 views
0

Так что я делаю приложение, которое показывает карту и ваше текущее местоположение. Теперь я сделал кнопку, и когда я нажимаю кнопку, он должен сделать маркер (аннотацию) в моем местоположении.Swift Возвращаемое значение

У меня есть эта функция, которая захватывает мое текущее местоположение, чтобы я мог показать это на карте.

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 

    let location = locations.last 

    let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude) 

    let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01)) 

    self.mapView.setRegion(region, animated: true) 

    self.locationManager.stopUpdatingLocation() 

    return center 
} 

Теперь я хочу использовать данные переменной «Центр» в другой функции. Но когда я «вернусь в центр». Я получаю следующую ошибку: «Unexpected non-void return value in void function»

Я много искал в googled, и я искал переполнение стека. Но я очень скоро быстр. И, похоже, не может найти или понять, как это исправить.

Я надеюсь, что кто-то может мне помочь и объяснить мне, как я должен это исправить!

Заранее благодарен!

ответ

1

Так как вы хотите, чтобы вернуть center который является CLLocationCoordinate2D, ваша функция подписи должна явно возвращать CLLocationCoordinate2D, как это:

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) -> CLLocationCoordinate2D { 

    let location = locations.last 

    let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude) 

    let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01)) 

    self.mapView.setRegion(region, animated: true) 

    self.locationManager.stopUpdatingLocation() 

    return center 
} 

Без -> CLLocationCoordinate2D в подписи, предполагается, что функция вернёт Пустота, следовательно, сообщение об ошибке, которое вы получили.

Смежные вопросы