Передача элемента обратно с быстрой проблемой - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть некоторые проблемы, и я действительно потерян, так что это последнее средство.

У меня есть эта функция:

func fetchGoogleData(forLocation: CLLocation) {
    //guard let location = currentLocation else { return }
    googleClient.getGooglePlacesData(location: forLocation) { (response) in
        self.listResults(places: response.results)
    }
}

, которая вызывает эти функции:

func listResults(places: [Place]) {
   dump(places)
}

Однако, сброс responses.result или places возвращает нулевое значение, но зацикливаниедо places возвращает все правильные значения.

Есть ли способ вернуть response.results в качестве значения без вызова этой функции?

1 Ответ

0 голосов
/ 26 февраля 2019

Вы можете использовать блок завершения (замыкания) , чтобы вернуть результаты.Допустим, ваш response.results имеет тип [Place].Тогда ваша функция должна выглядеть следующим образом:

func fetchGoogleData(forLocation: CLLocation, completion: @escaping [Place]->Void) {
    //guard let location = currentLocation else { return }
    googleClient.getGooglePlacesData(location: forLocation) { (response) in
        completion(response.results)
    } 
}

и вызывать ее следующим образом:

self.fetchGoogleData(forLocation: currentPosition) { (places) in
     //print(places)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...