Swift 尝试将UIContextMenuConfiguration子类化时发生Xcode错误

Swift 尝试将UIContextMenuConfiguration子类化时发生Xcode错误,swift,uicontextmenuconfiguration,Swift,Uicontextmenuconfiguration,尝试将UIContextMenuConfiguration子类化时,我遇到Xcode编译器错误 下面是重现问题的简单代码: @available(iOS 13.0, *) class DateDifferenceContextMenu: UIContextMenuConfiguration { init(indexPath: IndexPath, dateDifference: Int) { super.init(identifier: nil, previewProvi

尝试将UIContextMenuConfiguration子类化时,我遇到Xcode编译器错误

下面是重现问题的简单代码:

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

必须调用超类“UIContextMenuConfiguration”的指定初始值设定项

我的超级调用与指定的初始值设定项匹配。 怎么了

我的超级调用与指定的初始值设定项匹配

不,它调用一个
便利性
初始值设定项

将您的代码更改为只调用
super.init()
,或者使您的初始值设定项成为一个方便的
。即:

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

}
我的超级调用与指定的初始值设定项匹配

不,它调用一个
便利性
初始值设定项

将您的代码更改为只调用
super.init()
,或者使您的初始值设定项成为一个方便的
。即:

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

}

谢谢你说得太对了!我查看了类定义,没有看到它只有一个便利的init()。真正的init()来自NSObject。谢谢!你说得太对了!我查看了类定义,没有看到它只有一个便利的init()。真正的init()来自NSObject。