我正在使用 Xcode 6.4、Swift 1.2 版开发一个 iOS 应用程序。
我正在尝试在我的应用程序中使用 Google Places API 的功能 Current Place,以便获取靠近用户的地点列表,然后在 tableView 中显示它们。为了猜测位置,我创建了这个函数,每次搜索栏中的文本更改时都会激活它,并使用实时适应的建议填充一个名为 PossiblePlaces 的数组:
func search(searchText: String? = nil){
self.possiblePlaces = []
if searchText != nil {
println("before query")
placesClient?.currentPlaceWithCallback({ (placeLikelihoods:GMSPlaceLikelihoodList?, error:NSError?) -> Void in
if error != nil {
println("error")
}
if error == nil {
println("query ended")
for likelihood in placeLikelihoods!.likelihoods {
println(likelihood)
let place = likelihood.name
let id = likelihood.identifier
println(id)
println(place)
var suggestion = postedPlace(name: place, id: id)
self.possiblePlaces.append(suggestion)
}
self.autocompleteTableView.reloadData()
}
})
}
}
据我所知,该功能正确启动:每次文本更改时,我都会收到“查询前”消息。但是,我既没有得到“错误”,也没有得到“查询结束”,这似乎意味着查询永远不会启动。我不知道为什么:API 密钥是正确的,当 GMSPlacesClient 初始化(在 ViewDidLoad 中)时,我什至在控制台中收到关于我的 Google Maps SDK 版本的消息,所以我假设集成有效。
我很感激任何意见!
谢谢