ios - Swift 4.2:覆盖“restoreUserActivityState”必须与它覆盖的声明一样可用
问题描述
我正在尝试实现 Siri 快捷方式。为了处理它们,我必须重写该restoreUserActivityState
函数,但是当我将它重写到继承自 的类中时UIViewController
,会导致此错误:“重写'restoreUserActivityState'必须与它重写的声明一样可用”。我试图让我的班级和我的功能公开,但错误仍然存在。知道如何解决这个问题吗?
解决方案
当您从超类覆盖一个被覆盖的方法时,请确保您在子类中设置的方法具有比您继承的超类更高的访问级别。您可以使用open关键字。
例子:
class ViewController1: UIViewController {
override func restoreUserActivityState(_ activity:NSUserActivity) {
}
}
class ViewController2: ViewController1 {
open override func restoreUserActivityState(_ activity: NSUserActivity) {
}
}
我希望,它可以解决你的问题。
推荐阅读
- mongodb - MongoDB 聚合 - 分组数据
- python - 使用 Pytesseract 从图像中读取文本会导致路径错误
- python - 检查无效字符
- html - 与容器相邻的具有渐变下一个的 CSS 形状
- html - 两个单独的 div 上的连续渐变
- javascript - 我的图像在旋转时没有占据画布的整个宽度
- javascript - HTTP拦截器使用离子/角度导致CORS问题
- r - 将字符串拆分为单个字符,计算每个字符出现的次数,然后组合成单个 df/matrix
- php - WooCommerce 产品自定义循环由一系列 SKU 过滤
- amazon-s3 - 使用 Helm 在 Spinnaker 上配置 S3