具有以下单例:
class Colors {
static let sharedInstance = Colors()
private init() {}
let mainColor = UIColor.redColor()
}
我在其他 class 这样称呼它:
Colors.sharedInstance.mainColor
有没有办法这样称呼它:
Colors.mainColor
如果我内部有结构,该怎么办:
class Colors {
static let sharedInstance = Colors()
private init() {}
let mainColor = UIColor.redColor()
struct gradients {
let blueToRed = UIColor.blueColor()
}
}
我可以调用渐变的唯一方法是:
Color.gradients().blueColor
如果我添加一个静态属性来初始化该结构,则可以删除方括号,但是在键入自动完成功能时,会同时显示静态属性和该结构:
class Colors {
static let sharedInstance = Colors()
static let gradientsProperty = gradients()
private init() {}
let mainColor = UIColor.redColor()
struct gradients {
let blueToRed = UIColor.blueColor()
}
}
我想输入
Colors.gradients.blueToRed
最佳答案
我想出了这个答案。 Singletons的原因是使用和性能的简单性,因为不需要每次都实例化该类或结构。
同样,存储在此处的数据不会流经应用程序,不会在应用程序中进行修改,它只是可重用性的基本颜色,以后可能还会用于UI元素的间距常量。
如上所述,在这种情况下不需要类,因为我不会修改数据。
此答案允许我寻找的语法:
struct Style {
private init() {}
static let color = Color()
static let gradient = Gradient()
}
struct Color {
let mainColor = UIColor.redColor()
let secundaryColor = UIColor.blueColor()
let textColor = UIColor.darkGrayColor()
}
struct Gradient {
let backgroundGradient = UIColor.brownColor()
let overlayGradient = UIColor.yellowColor()
}
这是您的用法:
Style.color.mainColor
Style.gradient.backgroundGradient
关于ios - 如何创建单例并跳过sharedInstance静态属性语法部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37999108/