OGeek|极客世界-中国程序员成长平台

标题: ios - 在 Swift 3 中将类与同名的实例成员区分开来 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 17:17
标题: ios - 在 Swift 3 中将类与同名的实例成员区分开来

在 Swift 3 中如何区分实例成员和同名的类成员?现在通常在 Xcode 8 beta 5 中正常工作的方法会产生错误:

"static member 'textColor' cannot be used on instance of type UITag"

public class UITag : UILabel {

    static var textColor = UIColor.white

   override public init(frame: CGRect) {
        super.init(frame: frame)

        textColor = UITag.textColor /* error: static member cannot be used on instance of type UITag */
        text      = " not set "
   }
}



Best Answer-推荐答案


这是一个奇怪的错误,我们可以讨论它是否是一个编译器错误,它实际上允许用一个静态变量隐藏一个非静态变量,但是请注意,拥有两个具有相同属性的属性绝对是糟糕的代码名字,一个是静态的,一个不是静态的,因为最后一个会影响前一个。 defaultTextColor 可能是一个更好的名称。

一个简单的解决方法是使用:

super.textColor = ...

关于ios - 在 Swift 3 中将类与同名的实例成员区分开来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39020146/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4