如何判断程序停止直到查询结束?

时间:2015-04-27 15:56:15

标签: ios 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;
  }

1 个答案:

答案 0 :(得分:2)

它不会那样工作。

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

将您的方法名称更改为" startFetchingNearestPlace"它清楚地说明了它的作用:它没有取得最近的位置,它启动了一个过程,它将在某个时刻完成。

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