Я новичок в закрытии в Swift и задавался вопросом, как вернуть мои комментарии из закрытия. Я понимаю, что поскольку он асинхронен, внешний массив не заполняется в нужное время.как мне получить данные из этого закрытия?
Должен ли я использовать что-то вроде обработчика завершения? Как мне это сделать? Какова наилучшая практика для этого? Функция, имеющая обратный вызов, вызывается от didupdateLocation
.
fileprivate func getGooglePoisForCurrentLocation(centerLatitude: Double, centerLongitude: Double, delta: Double, count: Int) -> Array<GMAnnotation>
{
var annotations: [GMAnnotation] = []
placesClient.currentPlace(callback: { (placeLikelihoods, error) -> Void in
if let error = error {
print("Current Place error: \(error.localizedDescription)")
return
}
if let likelihoodList = placeLikelihoods {
for likelihood in likelihoodList.likelihoods {
let annotation = GMAnnotation()
let place = likelihood.place
annotation.location = CLLocation(latitude: place.coordinate.latitude, longitude: place.coordinate.longitude)
annotations.append(annotation)
}
}
})
return annotations; ====> EMPTY