Я пытаюсь сделать данные путешествия с помощью json и добавить UISearchController
.
Похоже, я могу запустить UISearchController
с английским и номером; однако, я не могу искать мандарин, когда я набираю ключевое слово.
Вот код, оценят все, кто может мне помочь!
class TableViewController: UITableViewController, UISearchResultsUpdating {
func updateSearchResults(for searchController: UISearchController) {
let searchString = searchController.searchBar.text!
filteredData = travelData.filter({ (data) -> Bool in
return (data.Name.contains(searchString) && data.Add.contains(searchString))
})
tableView.reloadData()
}
var travelData = [DetailData]()
var filteredData = [DetailData]()
override func viewDidLoad() {
super.viewDidLoad()
guard let url = "http://data.ntpc.gov.tw/api/v1/rest/datastore/382000000A-002491-001".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed), let downloadUrl = URL(string: url) else {return}
let task = URLSession.shared.dataTask(with: downloadUrl) { (data, response, error) in
let decoder = JSONDecoder()
print("Decoder")
if let data = data{
do{
let json = try decoder.decode(Alldata.self, from: data)
self.travelData = json.result.records
print("json")
DispatchQueue.main.async {
self.tableView.reloadData()
}
}catch{
print(error.localizedDescription)
}
}
}
task.resume()
navigationController?.navigationBar.prefersLargeTitles = false
let searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
navigationItem.searchController = searchController
definesPresentationContext = true
navigationItem.hidesSearchBarWhenScrolling = false
let image = UIImage()
self.navigationController?.navigationBar.setBackgroundImage(image, for: .default)
self.navigationController?.navigationBar.shadowImage = image
}
}
Прилагается с помощью gif-ссылки, чтобы лучше понять мою ситуацию.