我正在尝试使用Google Places API for iOS获取有关地点的详细信息。尝试调用lookUpPlaceID
函数时,收到以下Swift编译器错误:
无法调用' lookUpPlaceID'使用类型'的参数列表(字符串,回调:(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函数,所以我不认为它对我的placeClient有问题。
非常感谢任何帮助或建议。
答案 0 :(得分:5)
在回调中,您需要将类型(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
做的那样。
希望这有帮助。