Swift 4.2: переопределение 'restoreUserActivityState' должно быть таким же доступным, как и объявление, которое переопределяет - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь реализовать Siri Shortcuts. Чтобы их обработать, я должен переопределить функцию restoreUserActivityState, но когда я перезаписываю ее в свой класс, который наследует от UIViewController, это приводит к следующей ошибке: «Переопределение« restoreUserActivityState »должно быть таким же доступным, как и объявление, которое оно переопределяет». Я попытался сделать мой класс и мою функцию публичными, но ошибка не исчезла. Любая идея, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 31 августа 2018

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

Пример:

class ViewController1: UIViewController {
    override func restoreUserActivityState(_ activity:NSUserActivity) {

    }
}

class ViewController2: ViewController1 {
    open override func restoreUserActivityState(_ activity: NSUserActivity) {

    }
}

Надеюсь, это решит вашу проблему.

...