Как мне повторить функцию swift без указания имени этой функции?
Например, если у меня есть эта функция:
func repeatAtFail(){
let hasFailed = Bool.random()
if(hasFailed){
//repeat this function without calling function name
}
print("function succeed")
}
Итак, я ищу общую команду для повторения функции. Так же, как «Возврат». Но Return выходит из функции, и мне нужна одна команда, которая повторяет ее.
РЕДАКТИРОВАТЬ 11:08
Это функция, которую я имею
func loadRun(){
let request = get_request(postString: "function_name=get_run&userid=\(userid)&token=\(token!)")
URLSession.shared.dataTask(with: request) { (data, response, error) in
do {
guard let data = data else {
self.showErrorMessage()
//HERE I NEED TO REPEAT THE FUNCTION
throw JSONError.NoData
}
guard let json = try JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary else {
self.showErrorMessage()
throw JSONError.ConversionFailed
}
if(checkErrors(json: json)){
self.showErrorMessage(message:json["error"] as! String)
return
}
self.data = json["payload"] as! [[String: Any]]
DispatchQueue.main.sync {
self.loadingBar.stopAnimating()
}
} catch let error as JSONError {
self.showErrorMessage()
print(error.rawValue)
} catch let error as NSError {
self.showErrorMessage()
print(error.debugDescription)
}
}.resume()
}
Иногда случается, что я получаю ошибку -999, которая, вероятно, связана с ошибкой сертификата SSL в домене. Пока эта проблема не будет устранена, мне нужно решение перезагрузить функцию, чтобы пользователи не сталкивались с какими-либо проблемами.