Селектор с завершением, 2 переменными и интервалом времени
Продолжая этот вопрос
У меня есть эта функция
func getSearch(completed: @escaping DownloadComplete, searchString: String) {
let parameters: Parameters = [
"action" : "search",
"subaction" : "get",
"product_name" : searchString,
"limit" : "0,30"
]
Alamofire.request(baseurl, method: .get, parameters: parameters).responseJSON { (responseData) -> Void in
if((responseData.result.value) != nil) {
let result = responseData.result
if let dict = result.value as? Dictionary<String, AnyObject>{
if let list = dict["products_in_category"] as? [Dictionary<String, AnyObject>] {
if self.filteredData.isEmpty == false {
self.filteredData.removeAll()
}
for obj in list {
let manPerfumes = Products(productDict: obj)
self.filteredData.append(manPerfumes)
}
}
}
completed()
}
}
}
Как вы можете видеть, он обрабатывает одно завершение и одну строку поиска.
Что я пытаюсь сделать, это
extension SearchViewController: UISearchResultsUpdating {
func updateSearchResults(for searchController: UISearchController) {
if (searchController.searchBar.text?.characters.count)! >= 3 {
searchString = searchController.searchBar.text!
NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(self.getSearch(completed:searchString:)), object: nil)
perform(#selector(self.getSearch(completed:searchString:)), with object1: <How to add completion here?>, with object2: searchString, afterDelay: 0.5)
} else {
self.searchResultTable.reloadData()
}
}
}
В этой строке
perform(#selector(self.getSearch(completed:searchString:)), with object1: <How to add completion here?>, with object2: searchString, afterDelay: 0.5)
Я пытаюсь выяснить, как добавить завершение на первый объект и почему я не могу иметь 2 объекта и afterDelay??
Могу ли я иметь эти 2? И если да, как я могу расширить класс Perform?