如何在 Swift 中覆盖存储属性的 setter?
在 Obj-C 中,我可以覆盖它的 setter,但 Swift 似乎并不喜欢将 getter/setter 用于存储属性。
假设我有一个具有 rank
属性的 Card
类。我不希望客户端给它任何无效的值,因此,在目标 C 中,我可以覆盖 setRank
,以便它执行额外的检查。但是在 Swift 中的 willSet
似乎没有什么帮助,因为 newValue
是常数,而且分配 rank
是没有意义的,因为 setter 将在循环中被调用。