Google商家信息查询中的Swift 3完成处理程序。由于延迟我怎么知道我什么时候做完"?

时间:2017-07-28 05:10:13

标签: swift completionhandler

对不起,新手在这里,我已经广泛阅读完成处理程序,调度队列和小组,但我无法理解这一点。

我的应用加载了一系列Google商家信息ID,然后想要查询Google以获取每个地方的完整详细信息。问题是,由于异步处理,Google Lookup Place立即返回,并且回调发生在更远的线上,所以最好的方式是"正确的方式"知道最后一点数据何时进入我的查询,因为该功能几乎立即结束了?

附上代码。提前谢谢。

func testFunc() {

    let googlePlaceIDs = ["ChIJ5fTXDP8MK4cRjIKzek6L6NM", "ChIJ9Wd6mGYGK4cRiWd0_bkohHg", "ChIJaeXT08ASK4cRkCGpGgzYpu8", "ChIJkRkS4BapK4cRXCT8-SJxNDI", "ChIJ3wDV_2zX5IkRtd0hg2i1LhE", "ChIJb4wUsI5w44kRnERe7ywQaJA"]

    let placesClient = GMSPlacesClient()

    for placeID in googlePlaceIDs {

        placesClient.lookUpPlaceID(placeID, callback: { (place, error) in

            if let error = error {
                print("lookup place id query error: \(error.localizedDescription)")
                return
            }

            guard let place = place else {
                print("No place details for \(placeID)")
                return
            }

            print("Place Name = \(place.name)")

        })

    }

    print("Done")

}

0 个答案:

没有答案