Swift Instance成员不能用于类型

前端之家收集整理的这篇文章主要介绍了Swift Instance成员不能用于类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在超类中定义了一个变量并尝试在子类中引用它,但是在实例成员上获取错误不能在类型上使用
class supClass: UIView {
    let defaultFontSize: CGFloat = 12.0
}

class subClass: supClass {

    private func calcSomething(font: UIFont = UIFont.systemFontOfSize(defaultFontSize)) {
        //... Do something
    }
}

它出什么问题了?非常感谢

在类范围上计算方法参数的默认值,
不是实例范围,如下例所示:
class MyClass {

    static var foo = "static foo"
    var foo = "instance foo"

    func calcSomething(x: String = foo) {
        print("x =",x)
    }
} 

let obj = MyClass()
obj.calcSomething() // x = static foo

如果没有静态var foo,它就不会编译.

适用于您的情况,这意味着您必须使用所使用的属性
作为默认值static:

class supClass: UIView {
    static let defaultFontSize: CGFloat = 12.0 // <--- add `static` here
}

class subClass: supClass {

    private func calcSomething(font: UIFont = UIFont.systemFontOfSize(defaultFontSize)) {
        //... Do something
    }
}

(请注意,无论是否在中定义了属性,都与此问题无关同一个班级或超级班.)

原文链接:https://www.f2er.com/swift/319457.html

猜你在找的Swift相关文章