ios - 无法使用 Google Places API 获取地点的详细信息 - "Cannot invoke ' lookUpPlaceID' "

标签 ios swift google-places-api

我正在尝试使用适用于 iOS 的 Google Places API 获取有关地点的详细信息。尝试调用 lookUpPlaceID 函数时,收到以下 Swift 编译器错误:

Cannot invoke 'lookUpPlaceID' with an argument list of type '(String, callback: (GMSPlace!, _) -> Void)'

    let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

    placesClient!.lookUpPlaceID(placeID, callback: { (place: GMSPlace!, error) -> Void in
        if error != nil {
            println("lookup place id query error: \(error.localizedDescription)")
            return
        }

        if place != nil {
            println("Place name \(place.name)")
            println("Place address \(place.formattedAddress)")
            println("Place placeID \(place.placeID)")
            println("Place attributions \(place.attributions)")
        } else {
            println("No place details for \(placeID)")
        }
    })

我在这里使用 Google Places API 文档中提供的示例代码:

https://developers.google.com/places/ios/place-details#get-place

placesClient 是一个 GMSPlacesClient 类型的对象。在代码的前面,我能够成功调用 placesClient autcompleteQuery 函数,所以我认为这不是我的 placesClient 的问题。

如有任何帮助或建议,我们将不胜感激。

最佳答案

在回调中,您需要将类型 (GMSPlace) 替换为您要使用的变量名称,您为 error 正确执行了此操作。

应该是这样的:

let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

placesClient!.lookUpPlaceID(placeID, callback: { (place, error) -> Void in
    if error != nil {
        println("lookup place id query error: \(error!.localizedDescription)")
        return
    }

    if let p = place {
        println("Place name \(p.name)")
        println("Place address \(p.formattedAddress)")
        println("Place placeID \(p.placeID)")
        println("Place attributions \(p.attributions)")
    } else {
        println("No place details for \(placeID)")
    }
})

此外,确保在使用它们之前解包那些可选变量(包括 place 和 error),通过强制解包(!),就像我在上面对 error 所做的那样,或者使用 if let,就像我为 place 做的那样。

希望这对您有所帮助。

关于ios - 无法使用 Google Places API 获取地点的详细信息 - "Cannot invoke ' lookUpPlaceID' ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30643165/

相关文章:

javascript - 从 Open Layers Bing Map 中删除默认控件

javascript - Google 地方信息自动填充强制选择

ios - 如果从类的对象调用该函数,则无法构建 UI

ios - 带有值和日期图表 iOS 的折线图

javascript - 如何在 Obj-C 中定义带有回调的 Javascript 函数?

ios - AudioKit 录音机设置与麦克风崩溃 "required condition is false: mixingDest"

ios - 具有输入和输出一维数据缓冲区的 Metal 计算着色器?

ios - 按日期对过滤结果进行分组,而不将所有内容转储到内存中

ios - URLSession 结果为 NIL 数据

google-places-api - 来自服务器请求的 Google Places REQUEST_DENIED - 没有任何效果