2

我正在使用 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 版本的消息,所以我假设集成有效。

我很感激任何意见!

谢谢

4

2 回答 2

1

我也有同样的问题。我让它在 iPhone 模拟器上工作的方法是更改​​我在模拟器上的位置:调试 - > 位置。也就是说,它默认设置为“Apple”,我只是将其更改为 Bicycle Ride。并通过在 Info.plist 中添加 NSLocationWhenInUseUsageDescription 权限。

它对我有用

于 2016-06-07T12:49:11.680 回答
0

对于那些可能遇到相同问题的人来说,问题似乎出在模拟器假定模拟设备具有的 iOS 版本上。简单来说,这个问题在 iPhone 6 模拟器上不会出现,可能是因为 Xcode 假设设备上的 iOS 至少是 iOS 7.0。

于 2015-09-17T19:00:18.680 回答