无法使用 Google 地点 API - "Cannot invoke 'lookUpPlaceID' " 获取地点的详细信息
Unable to get details for a place using Google Places API - "Cannot invoke 'lookUpPlaceID' "
我正在尝试使用 iOS 的 Google 个地点 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)")
}
})
此外,确保在使用它们之前解包那些可选变量(位置和错误),通过强制解包(!),就像我在上面对 error
所做的那样,或者使用 if let
,就像我为 place
.
做的一样
希望对您有所帮助。
我正在尝试使用 iOS 的 Google 个地点 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)")
}
})
此外,确保在使用它们之前解包那些可选变量(位置和错误),通过强制解包(!),就像我在上面对 error
所做的那样,或者使用 if let
,就像我为 place
.
希望对您有所帮助。