Swift JSON API调用在第一个请求时返回一个空数组

时间:2017-05-12 12:43:07

标签: json swift

我有一个应用程序在这里和那里进行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数组时,无论如何在第一个请求后总是为空,但是在第一个请求之后总是填充。非常感谢任何帮助,谢谢

0 个答案:

没有答案