0

尝试子类化 UIContextMenuConfiguration 时出现 Xcode 编译器错误。

这是重现问题的简单代码:

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

错误内容如下:

必须调用超类“UIContextMenuConfiguration”的指定初始化程序。

我的超级调用匹配指定的初始化程序。怎么了?

4

1 回答 1

2

我的超级调用匹配指定的初始化程序。

不,它调用convenience初始化程序。

将您的代码更改为简单地调用super.init(),或者使您的初始化程序成为一个convenience好。IE:

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()
    }

}
于 2020-09-13T12:16:56.077 回答