如何告诉程序停止,直到查询结束



我在 swift 上写。我有一个带有查询的方法,这需要时间,我需要停止该方法,直到查询完成。我应该写什么代码?

  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;
  }

它不是那样工作的。

您犯了一个根本错误,认为可以调用异步方法并返回其结果。它不起作用。

将方法名称更改为"startFetchingNearestPlace",这清楚地表明了它的作用:它不会获取最近的位置,它会启动该过程,该过程将在某个时候完成。

该过程完成后,您的完成块需要执行所有需要执行的操作来处理您下载的信息。

最新更新