gpt4 book ai didi

ios - 我们可以使用 Google 的 place autocomplete api 在 swift 上填充 tableview 单元格吗?

转载 作者:可可西里 更新时间:2023-11-01 01:10:38 24 4
gpt4 key购买 nike

我想知道我们如何使用 google place api 的过程,以便当我们在 UITextField 中输入文本时,tableview 会重新加载以显示自动完成结果。 Google 上提供的文档使用其自己的 API。我是 ios 开发的新手。谁能帮助我如何进行?到目前为止,我已经完成了 pod 设置等,我能够让用户在文本字段的委托(delegate)方法中输入文本。

这是我的代码,我无法在我的表格 View 中看到任何结果

import UIKit
import GooglePlaces

class ViewController: UIViewController {
@IBOutlet weak var schoolTextField: UITextField!
@IBOutlet weak var schooltableView: UITableView!

var placesClient : GMSPlacesClient?
var resultArray = [String]()

override func viewDidLoad() {
super.viewDidLoad()
}

func placeAutocomplete(text:String) {
let filter = GMSAutocompleteFilter()
filter.type = .noFilter
placesClient?.autocompleteQuery(text, bounds: nil, filter: filter, callback: {(results, error) -> Void in //unable to enter in this block
if let error = error {
print("Autocomplete error \(error)")
return
}
if let results = results {
self.resultArray = [String]()
for result in results {
self.resultArray.append(String(describing: result.attributedFullText))
print("Result \(result.attributedFullText) with placeID \(result.placeID)")
}
}
self.schooltableView.reloadData()
})
}
}

extension ViewController:UITextFieldDelegate {
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let currentText = textField.text ?? ""
placeAutocomplete(text:currentText)
return true
}
}

extension ViewController:UITableViewDelegate,UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return resultArray.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)as! SchoolCell
cell.schoolLabel.text = resultArray[indexPath.row]
return cell
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
//do something, unable to reach here
}
}

最佳答案

您忘记实例化 GMSPlacesClient 并在 viewDidLoad 中调用委托(delegate)给 UITextField 和 UITableView。

override func viewDidLoad() {
super.viewDidLoad()

self.placesClient = GMSPlacesClient()
self.schoolTextField.delegate = self
self.schooltableView.delegate = self
self.schooltableView.dataSource = self
}

关于ios - 我们可以使用 Google 的 place autocomplete api 在 swift 上填充 tableview 单元格吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47390245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com