我有一个应用程序在这里和那里进行api调用,需要解析返回的json。
它的工作正常,只有一次请求多次出现。例如,有一个api调用自动完成搜索。输入第一个字母时,将返回一个空数组。当键入第二个时,结果使用输入的前一个字母,就像它被延迟并使用之前的api调用一样。
代码:
func updateSearchResults(for searchController: UISearchController) {
autocompleteIngredientSearch(searchText: searchController.searchBar.text!);
}
func autocompleteIngredientSearch(searchText: String) {
let urlRequest = URL(string: "https://spoonacular-recipe-food-nutrition-v1.p.mashape.com/food/ingredients/autocomplete?metaInformation=false&number=10&query=" + searchText)
var request = URLRequest(url: urlRequest!)
request.setValue("(removed this key)", forHTTPHeaderField: "X-Mashape-Key")
request.httpMethod = "GET"
request.setValue("application/json", forHTTPHeaderField: "Accept")
URLSession.shared.dataTask(with: request, completionHandler: {
(data, response, error) in
if error != nil {
print(error.debugDescription)
} else {
do {
self.autoResults = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [[String: AnyObject]]
self.ingredientsTableView.reloadData()
} catch let error as NSError {
print(error)
}
self.tableView.reloadData()
}
}).resume()
}
当我打印autoResults数组时,无论如何在第一个请求后总是为空,但是在第一个请求之后总是填充。非常感谢任何帮助,谢谢