也许我只是在阅读旧资料,但看不到一种做起来似乎很简单的方法。
我有一个名为Robot
的类,该类的每个实例都需要一个唯一的id
。 id
只是应该为1,2,3的Int
。通常的解决方案是让类var MaxId
在init()
中递增然后将其分配给实例的id
。
Swift(4?)没有类var,但是在类级别具有计算属性。但是,我对如何使用它来完成MaxId
感到有些困惑。我在这里错过了令人眼花obvious乱的明显东西吗?
答案 0 :(得分:2)
唯一ID。 id只是一个Int,应为1,2,3。
您当然可以使用静态属性并对其进行递增,但是请注意, 那是两个不同的要求。如果您真正想要的是唯一的ID,则无需“最少可用的整数”方法。只需使用内置的UUID结构并继续。
答案 1 :(得分:1)
静态变量本质上是类变量。在操场上尝试一下:
class Numbered {
static var serial: Int = 1
let myID: Int
init() {
myID = Numbered.serial
Numbered.serial = Numbered.serial + 1
}
}
print(Numbered().myID)
print(Numbered().myID)