访问UIColor扩展的成员时出错

j.k*_*ssa 3 uicolor swift swift-extensions

我想将自定义颜色移动到UIColor的扩展名:

extension UIColor {
    static var nonSelectedTabColor: UIColor {
        return UIColor(white: 0.682, alpha: 1) // #AEAEAE
    }
}
Run Code Online (Sandbox Code Playgroud)

但是在尝试访问它时,它导致了我一个错误:

private static let defaultBorderColor = .nonSelectedTabColor
Run Code Online (Sandbox Code Playgroud)

Reference to member 'nonSelectedTabColor' cannot be resolved without a contextual type

这是什么问题?我怎样才能解决这个问题?

Mar*_*n R 5

编译器无法知道您是在引用的成员 UIColor。要么

private static let defaultBorderColor = UIColor.nonSelectedTabColor
Run Code Online (Sandbox Code Playgroud)

要么

private static let defaultBorderColor: UIColor = .nonSelectedTabColor
Run Code Online (Sandbox Code Playgroud)

将解决问题。在第二行中,类型UIColor 是从上下文推断的,并且.nonSelectedTabColor 是“隐式成员表达式”。