Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Google Places未加载到TableView_Ios_Swift_Uitableview_Google Places Api_Googleplacesautocomplete - Fatal编程技术网

Ios Google Places未加载到TableView

Ios Google Places未加载到TableView,ios,swift,uitableview,google-places-api,googleplacesautocomplete,Ios,Swift,Uitableview,Google Places Api,Googleplacesautocomplete,我有一个UIViewController,它将另一个UIViewController显示为UISearchResultsController 我想这个searchResultsController在搜索时显示GooglePlaces 我正在控制台中打印所有自动完成预测,但是,UITableView没有加载数据 这是我的职责 func updateSearchResults(for searchController: UISearchController) { searchCont

我有一个UIViewController,它将另一个UIViewController显示为UISearchResultsController

我想这个searchResultsController在搜索时显示GooglePlaces

我正在控制台中打印所有自动完成预测,但是,UITableView没有加载数据

这是我的职责

func updateSearchResults(for searchController: UISearchController) {
        searchController.searchResultsUpdater = self
        if searchController.isActive {
            searchController.searchResultsController?.view.isHidden = false
        }
        if searchController.searchBar.text == "" {
            self.searchResults.removeAll()
        } else {
            guard let query = searchController.searchBar.text else { return }
            GMSPlacesClient.shared().autocompleteQuery(query, bounds: nil, filter: filteredResults) { (predictions, error) in
                if error != nil {
                    print(error as Any)
                    return
                } else {
                    guard let searchPredictions = predictions else { return }
                    self.searchResults = searchPredictions
                    print("PREDICTION: \(searchPredictions)")
                    DispatchQueue.main.async {
                        self.resultsTableView.reloadData()
                    }
                }
            }
        }
    }
let results = searchResults[indexPath.row].placeID
卫生检查
  • TableView委托
  • TableView数据源
  • 预言
  • 行数部分
  • 1和2被设置为self

    三是印刷

    GMSAutocompletePrediction 0x6000037f0450: "England Street, Charlotte, NC, USA", id: EiJFbmdsYW5kIFN0cmVldCwgQ2hhcmxvdHRlLCBOQywgVVNB, types: (
        route,
        geocode
    
    4是给我正确数量的预测

    我在这里跟踪谷歌的定制实现

    在“以编程方式获取位置预测”下

    如往常一样,任何帮助都是值得感激的

    更新:TableView方法 更新:cellForRowAt 在进一步检查我的cellForRowAt功能后

    func updateSearchResults(for searchController: UISearchController) {
            searchController.searchResultsUpdater = self
            if searchController.isActive {
                searchController.searchResultsController?.view.isHidden = false
            }
            if searchController.searchBar.text == "" {
                self.searchResults.removeAll()
            } else {
                guard let query = searchController.searchBar.text else { return }
                GMSPlacesClient.shared().autocompleteQuery(query, bounds: nil, filter: filteredResults) { (predictions, error) in
                    if error != nil {
                        print(error as Any)
                        return
                    } else {
                        guard let searchPredictions = predictions else { return }
                        self.searchResults = searchPredictions
                        print("PREDICTION: \(searchPredictions)")
                        DispatchQueue.main.async {
                            self.resultsTableView.reloadData()
                        }
                    }
                }
            }
        }
    
    let results = searchResults[indexPath.row].placeID
    
    结果
    打印到控制台不会给我任何输出

    更新: 在
    self处添加断点结果。searchResults=searchPredictions

    更新: 在控制台中,我得到以下错误

    [BoringSSL] nw_protocol_boringssl_get_output_frames(1300) [C3.1:2][0x7ffd627057e0] get output frames failed, state 8196
    

    不确定这是否与我的问题有关,但仍要注意。

    是否可以替换以下内容:

    DispatchQueue.main.async {
         self.resultsTableView.reloadData()
    }
    


    self
    UISearchController
    UISearchResultsController
    的实例?self是UISearchController的searchResultsController,其中我将数据源和委托设置为self,这是针对UITableView的。为了清晰起见,我将更新。请尝试记录
    self.searchResults
    。你在这里的引用似乎是罪魁祸首。我的self.searchResults在这里是搜索结果:[gmsautocomplete 0x6000015c1290:“英国伦敦英格兰巷”,id:EhpFbmdsYW5kJ3MgTGFuZSwgTG9uZG9uLCBVSw,类型:(路线,geocode@V_rohit我已经更新了我的问题以在断点上显示结果。self.searchResults似乎确实是问题所在。它不是空的,但NumberRorItemsInSection从未更新过?这给了我;类型为“UIViewController”的值没有成员“resultsTableView”,在哪个类中是
    updateSearchResults
    方法implemented?其类内搜索结果控制器:UIViewController、UISearchControllerDelegate、UISearchResultsUpdating根据您发布的代码和解释,我假设您希望在另一个视图控制器中显示数据(
    UISearchResultsController
    )而不是在当前执行搜索的
    UISearchController
    中。对吗?正确。我正在uisearchResultsController中显示它