无法覆盖preferredsHomeIndicatorAutoHidden()方法

时间:2018-09-18 12:58:28

标签: swift methods override method-overriding

我在带有XCode 10的应用程序中使用以下代码行,以使iPhone X和关联的无边缘苹果设备上的首页指示器变暗。

    override func prefersHomeIndicatorAutoHidden() -> Bool {
        return true
    }

现在有趣的是,我有一个该应用程序的精确副本,并且在一个副本上该代码有效,而在该代码之上则无法编译:

  

方法不会覆盖其超类中的任何方法

实际上,当我开始键入“ prefers ...”时,preferredHomeIndicatorAutoHidden一方面显示为只读属性,另一方面却显示为方法,并且默认情况下获取重写前缀。

感谢您抽出宝贵的时间,

最佳

使用解决方案进行编辑,这要感谢 @inokey

  • 解决方案1:检查部署(从i0S 12开始,prefersHomeIndicatorAutoHidden不能作为方法被覆盖)

  • 解决方案2:

override var prefersHomeIndicatorAutoHidden : Bool { return true }

2 个答案:

答案 0 :(得分:2)

我假设Xcode 10中的默认部署目标是12,而您先前的项目是11或10,因此它仅反映了API的更改。

SDK中的

Changes表示已更改

enter image description here

答案 1 :(得分:1)

在Xcode 10 = Swift 4.2(2018年9月)

只需使用以下代码:

override var prefersHomeIndicatorAutoHidden: Bool { return true }