创建和管理常量的简单方法
Simple method that creates and manage constants
通常我先声明常量,然后使用某种方法设置它们的设置。但是写一个声明常量和变量的简单方法安全吗?
例如,我创建了这样的方法 - 到目前为止工作正常:
func textSettings(labelName: String, text: String, color: UIColor, fontSize: Int, xPosition: CGFloat, yPosition: CGFloat) {
let labelName = UILabel(frame: CGRect(x: 0, y: 0, width: 0, height: 21))
labelName.textAlignment = .center
labelName.text = text
labelName.textColor = color
labelName.font = labelName.font.withSize(CGFloat(fontSize))
labelName.sizeToFit()
labelName.layer.position.x = xPosition
labelName.layer.position.y = yPosition
UIScrollView.addSubview(labelName)
}
但是使用它安全吗?这样创建对象的过程有严重的缺陷吗?
这是绝对有可能的,只要你注意到这一点:
- 对新创建的标签的唯一引用由 scrollView 保留。
- 也许像
addSettingsLabel
这样更有意义的名字会更清楚。
- 也许分开创建和使用是合适的,比如:
createSettingsLabel(labelName: String, text: String, color: UIColor, fontSize: Int, xPosition: CGFloat, yPosition: CGFloat) -> UILabel
{
...
}
let settingsLabel = createSettingsLabel(...)
scrollView.addSubview(settingsLabel)
通常我先声明常量,然后使用某种方法设置它们的设置。但是写一个声明常量和变量的简单方法安全吗?
例如,我创建了这样的方法 - 到目前为止工作正常:
func textSettings(labelName: String, text: String, color: UIColor, fontSize: Int, xPosition: CGFloat, yPosition: CGFloat) {
let labelName = UILabel(frame: CGRect(x: 0, y: 0, width: 0, height: 21))
labelName.textAlignment = .center
labelName.text = text
labelName.textColor = color
labelName.font = labelName.font.withSize(CGFloat(fontSize))
labelName.sizeToFit()
labelName.layer.position.x = xPosition
labelName.layer.position.y = yPosition
UIScrollView.addSubview(labelName)
}
但是使用它安全吗?这样创建对象的过程有严重的缺陷吗?
这是绝对有可能的,只要你注意到这一点:
- 对新创建的标签的唯一引用由 scrollView 保留。
- 也许像
addSettingsLabel
这样更有意义的名字会更清楚。 - 也许分开创建和使用是合适的,比如:
createSettingsLabel(labelName: String, text: String, color: UIColor, fontSize: Int, xPosition: CGFloat, yPosition: CGFloat) -> UILabel
{
...
}
let settingsLabel = createSettingsLabel(...)
scrollView.addSubview(settingsLabel)