функция быстрого протокола с обратным вызовом @escaping - PullRequest
0 голосов
/ 22 сентября 2019

Я создал протокол с определением функции, у которого есть параметр функции обратного вызова.Но когда я пытаюсь использовать обратный вызов в классе, который реализует протокол, я получаю сообщение об ошибке:

Закрытое использование неэкранирующего параметра 'callBack' может позволить ему экранировать

Исправление добавляет флаг @ escaping к определению функции, но больше не подтверждает определение функции в протоколе.

Эту функцию я передаю как вызовназад:

private func handleSignUpRes(result:Bool, msg:String, uData:UserData){
    if(result == false && (currVC != nil)){
        Utilities.ShowAlert(title: "Error", msg: msg, vc: currVC!)
    }
    else if(result == true){

    }
}

1 Ответ

0 голосов
/ 22 сентября 2019

Вам нужно передать закрытие, которое не выходит.

Экранирующие закрытия - это замыкания, которые могут быть выполнены после возврата из функции.

Перепишите свое закрытие, чтобы убедиться, что оно не можетвозвращать значение после возврата функции.

К сожалению, не видя закрытие, я не могу сказать вам, почему закрытие выходит.

Когда вы отправляете закрытие, я отредактирую свой ответ.

...