因此,在目标C,C / C ++和.NET以及我使用的几乎所有其他语言中,您可以声明可以包含先前常量的常量,例如
#define PI 3.14159
#define HALFPI (PI/2)
const CGFloat BOTTOM_BAR_HEIGHT = 200;
const CGFloat BOTTOMBARCONTENTS_DY = BOTTOM_BAR_HEIGHT/2;
但这似乎并不适用于swift
let PI=3.14159
let HALF_PI=PI/2
如果您尝试执行(许多示例中的一个)布局维度或实际上任何相互依赖的常量集合,那么这是真正有用的模式。有没有办法在swift中实现这个模式,而不是将它们声明为vars并将它们设置在初始化函数中(这将使一些真正冗长的代码的大小加倍并降低其可维护性,因此使用vars而不是let使用任何低级惩罚,破坏了我对swift的第一印象)?感谢。
答案 0 :(得分:0)
可能你可以使用像这样的NSObject类:
import UIKit
class ViewController: NSObject {
static let PI = 3.14
static let HALF_PI = ViewController.PI/2
}
要实现此目的,您可以使用静态
并将其用于任何View控制器,如
print(ViewController.PI)
print(ViewController.HALF_PI)
希望这有助于。