【问题标题】:method does not override any method from its superclass [duplicate]方法不会覆盖其超类中的任何方法[重复]
【发布时间】:2016-10-23 19:40:37
【问题描述】:
import UIKit

class LoginController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        view.backgroundColor = UIColor(r: 61, g: 91, b: 151)
    }

    override func preferredStatusBarStyle() -> UIStatusBarStyle {
        return .lightContent

    }
}

extension UIColor {

    convenience init(r: CGFloat, g: CGFloat, b: CGFloat) {
        self.init(red: r/255, green: g/255, blue: b/255, alpha: 1)

每当我改变时

override var preferredStatusBarStyle: UIStatusBarStyle {
        return UIStatusBarStyle.lightContent
}

我遇到了线程错误,导致我的模拟器无法加载

【问题讨论】:

  • 为什么要使用preferredStatusBarStyle 作为属性?
  • 啊,对了,也许我误解了你的问题。所以你已经尝试了属性方法,但仍然得到一些错误?

标签: ios swift


【解决方案1】:

preferredStatusBarStyle 是计算属性,而不是您问题中所述的函数。

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return .lightContent
}

应该是这样的:

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

这应该可以解决问题。

【讨论】:

  • 这不仅仅是将func 替换为var 的问题。您还需要删除参数列表(()),并将->更改为:
【解决方案2】:

那是因为它是 var,而不是 func。试试这个:

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

【讨论】:

    【解决方案3】:

    preferredStatusBarStyle 是一个属性,而不是一个函数。而不是

    override func preferredStatusBarStyle() -> UIStatusBarStyle {
      return .lightContent
    }
    

    使用

    override var preferredStatusBarStyle : UIStatusBarStyle {
      return .lightContent
    }
    

    【讨论】:

    • 谢谢,成功了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    相关资源
    最近更新 更多