如何制作全班级ID号

时间:2019-04-19 14:23:21

标签: swift class-variables

也许我只是在阅读旧资料,但看不到一种做起来似乎很简单的方法。

我有一个名为Robot的类,该类的每个实例都需要一个唯一的idid只是应该为1,2,3的Int。通常的解决方案是让类var MaxIdinit()中递增然后将其分配给实例的id

Swift(4?)没有类var,但是在类级别具有计算属性。但是,我对如何使用它来完成MaxId感到有些困惑。我在这里错过了令人眼花obvious乱的明显东西吗?

2 个答案:

答案 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)