передать блок завершения от быстрой до цели - PullRequest
1 голос
/ 18 октября 2019

Попытка вернуть блок завершения из кода swift, но похоже, что я делаю что-то не так.

Мой код objC, который я хочу скопировать для моего контроллера быстрого просмотра TestViewController

Мне просто нужно Bool и BMError вернуться в блок завершения

Код, в котором я ошибаюсь:

TestViewController *changeVC = [[TestViewController alloc] initWithCompletionData:completion ];

Мой быстрый код, который я пытался воспроизвести как функцию objc:

@objc public class TestViewController {

    var completionData: ((Bool, BMErrors?) -> Void)?

    public required init?(coder aDecoder: NSCoder) {
        fatalError("Not implemented")
    }

    @objc public init(completionData completion: ((Bool, BMErrors?) -> Void)?) {
        super.init(nibName: nil, bundle: nil)
        self.completionData = completion
    }

    func verifySuccess(result: QuestionResult, error: BMErrors?) {

        if (result.success) {
            // how to pass completionData
        }
    }

}

1 Ответ

1 голос
/ 21 октября 2019

Вы можете позвонить TestViewController.completionData следующим образом: self.completionData?(false, error) или self.completionData?(false, nil), если не хотите передавать error.

...