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

时间:2016-10-23 19:40:38

标签: ios swift

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
}

我得到线程错误,不会让我的模拟器加载

3 个答案:

答案 0 :(得分:1)

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

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

这是怎么回事:

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

这应该可以解决问题。

答案 1 :(得分:0)

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

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

答案 2 :(得分:0)

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

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

使用

override var preferredStatusBarStyle : UIStatusBarStyle {
  return .lightContent
}