gpt4 book ai didi

ios - 如何创建单例并跳过 sharedInstance 静态属性语法部分

转载 作者:可可西里 更新时间:2023-11-01 00:59:13 25 4
gpt4 key购买 nike

具有以下单例:

class Colors {
static let sharedInstance = Colors()
private init() {}
let mainColor = UIColor.redColor()

}

我在别的课上是这样调用它的:

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()
}

}

enter image description here

我想输入Colors.gradients.blueToRed

最佳答案

我想出了这个答案。单例的原因是使用和性能简单,因为不需要每次都实例化类或结构。

此外,要存储在此处的数据不会流经应用程序,也不会在应用程序中进行修改,它只是可重用性的基本颜色,稍后可能还有其他内容,例如 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com