Повторите функцию с общей командой (без указания имени функции) - PullRequest
0 голосов
/ 23 апреля 2019

Как мне повторить функцию 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 в домене. Пока эта проблема не будет устранена, мне нужно решение перезагрузить функцию, чтобы пользователи не сталкивались с какими-либо проблемами.

...