我正在迅速写作。我有一个查询方法,需要时间,我需要停止方法,直到查询完成。我应该写什么代码?
func fetchNearestPlace (coord: CLLocation) -> [PlaceMarker] {
var returnArray: [PlaceMarker] = [];
self.dataProvider.fetchPlacesNearUser(coord.coordinate, radius: 40) { places in
self.placesOnTheWay = [];
for place: GooglePlace in places {
let marker = PlaceMarker(place: place);
returnArray.append(marker);
println(marker.place.name);
}
println("Query for places around user");
}
return returnArray;
}
答案 0 :(得分:2)
它不会那样工作。
您犯了一个基本错误,认为您可以调用异步方法并返回其结果。它不起作用。
将您的方法名称更改为" startFetchingNearestPlace"它清楚地说明了它的作用:它没有取得最近的位置,它启动了一个过程,它将在某个时刻完成。
当流程完成后,您的完成块需要执行处理您下载的信息所需的所有操作。