一个基本问题,甚至可能是愚蠢的,但这对我很重要。我不知道答案,我很感激你的时间。
[问题]:
在Swift中,没有任何计算属性的存储分配,所以它不是真正的变量 你可以在第二章的第197页找到这句话。本书 iOS Apprentice(第5版)
[问题]:
计算属性没有任何存储分配?我不明白这一点。内存中必须有一些位置来阻止数据进行计算,否则,这怎么可能呢?或者,它意味着计算仅被调用的值,并在数据传递给调用者之后删除/销毁数据,我是否正在这个概念的正确方向?
谢谢
答案 0 :(得分:1)
计算属性非常类似于不带参数并返回值的函数。对于执行计算属性的生命周期,将临时在堆栈上分配一些内存,以存储计算属性的局部变量。
除此之外,计算属性的指令必须存储在已编译程序的某处。幸运的是,您只需要一份定义副本,可以用于所有实例。
重要的是,不需要每个实例的内存。
答案 1 :(得分:1)
基本上这意味着您每次使用它时都会计算结果,而不是引用存储任何先前计算结果的地址。因此每次使用它时会占用内存(在计算完成时释放),但是没有留出一个存储位置来保存该值以供以后引用(正常变量/对象具有该值)。