当前位置: 首页 > 知识库问答 >
问题:

无法使用Google Places API获取某个位置的详细信息-“无法调用'look upplaceid'”

赵征
2023-03-14

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

无法使用类型为“(String,callback:(gmsplace!,_)->Void)”的参数列表调用“look upplaceid”

    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)")
        }
    })

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

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

共有1个答案

葛骏
2023-03-14

在回调中,您需要将类型(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)之前先将它们解包,方法是执行force unwrapping(!),就像上面对error所做的那样,或者使用if let,就像我对place所做的那样。

希望这有帮助。

 类似资料:
  • 我在网上搜索这个问题的解决方案,但没有找到任何有效的解决方案。我正在尝试设置基本的Spring Boot OAuth2授权提供程序和客户端。 我按照官方的Spring Boot指令,创建了Facebook和GitHub的单点登录。然后按照说明创建安全的Spring Boot Web应用程序。 以下是记录的内容: 信息2800---[nio-9999-exec-3]O.S.B.A.S.O.R.Use

  • 我在生成简单应用程序时收到此错误消息 正在从以下位置获取用户信息:http://localhost:9999/uaa/user无法获取用户详细信息:类组织。springframework。网状物客户RestClientException,无法提取响应:未找到响应类型[interface java.util.Map]和内容类型[text/html;charset=UTF-8]的合适HttpMessa

  • 我正在一个项目,其中有要求的Gmail认证,也可以扩展。我在这里遵循这个教程,其中有关于Facebook和GitHub身份验证的示例。所以我尝试了Gmail,我得到了这个错误,我无法解决,并得到了新的异常时,试图解决。请帮助我,因为我相信这是代码受我添加的影响最小的地方。有了这么多的配置和代码,它只适用于github和fb,但不适用于Google。 socialapplication.java b

  • 问题内容: api调用 返回在其中填充的对象。样本输出: 当我在go中尝试相同的呼叫时,即使我在掩码中声明了该呼叫,也不会填充该呼叫。请指教。 样本输出: 然后返回一个具有与以下相同数据的html字符串,该示例条目: 问题答案: 默认端点是REST,但是在您的环境中,您使用的是xmlrpc,这可能是由于〜/ .softlayer文件的存在,并且在此文件中将其配置为XMLRPC入口。 有关更多信息,

  • 当我在accessTokenUri中提供域名时,它不起作用并报告错误,但当我提供localhost时,它起作用。为什么? 授权服务器Config.java ResourceServerConfig.java 错误: 2018-09-14 12:00:13.083信息25836---[main]o.s.j.e.a。AnnotationMBeanExporter:Located managed bea

  • 本文向大家介绍Android获取位置信息的方法,包括了Android获取位置信息的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android获取位置信息的具体代码,供大家参考,具体内容如下 1.位置服务的简介:位置服务,英文翻译为Location-Based Services,缩写为LBS,又称为定位服务或基于位置的服务,融合了GPS定位、移动通信、导航等多种技术,提供与空间