Я запутался в синтаксисе обработчика завершения в Swift 3.
В приведенной ниже функции после разбора файла xml
из вызова веб-службы она должна вернуть переменную (array [String:String]
).
Моя попытка ниже, но очевидно, что она неверна.
enum HistoryKey {
case success([String:String])
case failure(String)
}
private func getHistoryKeys(searchterm: String, completion: @escaping () -> HistoryKey) {
let url = PubmedAPI.createEsearchURL(searchString: searchterm)
let request = URLRequest.init(url: url as URL)
let task = session.dataTask(with: request) { (data, response, error) in
if let theData = data{
let myParser = XMLParser.init(data: theData)
myParser.delegate = self
myParser.parse()
}
}
task.resume()
if keys.isEmpty {
return .failure("no historyKeyDictionary")
}else{
return .success(keys)
}
}// End of func
Я хочу использовать эту функцию следующим образом
let result = self.getHistoryKeys(searchTerm)