Селектор с завершением, 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?

0 ответов

Другие вопросы по тегам