Ошибка Xcode при попытке создать подкласс UIContextMenuConfiguration

Я получаю ошибку компилятора Xcode при попытке создать подкласс UIContextMenuConfiguration.

Вот простой код, воспроизводящий проблему:

@available(iOS 13.0, *)
class DateDifferenceContextMenu: UIContextMenuConfiguration {
    init(indexPath: IndexPath, dateDifference: Int) {
        super.init(identifier: nil, previewProvider: nil, actionProvider: nil)
    }
}

Ошибка гласит:

Должен вызывать назначенный инициализатор суперкласса "UIContextMenuConfiguration".

Мой супервызов соответствует назначенному инициализатору. Что случилось?

1 ответ

Решение

Мой супервызов соответствует назначенному инициализатору.

Нет, это вызывает convenience инициализатор.

Измените свой код, чтобы просто позвонить super.init(), или сделайте свой инициализатор convenienceхорошо. Т.е.:

class DateDifferenceContextMenu: UIContextMenuConfiguration {
    // use either this
    convenience init(indexPath: IndexPath, dateDifference: Int) {
        self.init(identifier: nil, previewProvider: nil, actionProvider: nil)
    }

    // or this
    init(indexPath: IndexPath, dateDifference: Int) {
        super.init()
    }

}
Другие вопросы по тегам