Swift - 如何正确设置弱变量

时间:2015-09-29 10:22:20

标签: xcode automatic-ref-counting

我有一个应用程序,里面有很多天文计算。 为了理智,它们被分成单独的方法/功能。 单独运行没有内存逃逸。

然而,当我需要计算一些复杂的东西,比如太阳光线的入射角到地球上的任何地方时,我必须连续调用19种方法,并且内存使用量会通过屋顶。很显然,变量仍然存在,因此ARC无法将它们蒸发掉。

所以我认为解决方案是创建一个薄弱环节。如果我从

改变我的电话
var angleIncidence = Celestial().calculateAngleIncidence(....)

weak var angleIncidence = Celestial().calculateAngleIncidence(....)

我得到一个“弱不能应用于非类型Double”。

我显然太天真了。

1 个答案:

答案 0 :(得分:1)

双打不是对象,因此将它们称为强弱是没有意义的,因为它们没有引用计数。

在实践中,他们遵守可变范围的典型规则。但是,除非您使用非常大的数组,否则它们应该不会导致大量内存使用。我的感觉是可能正在发生其他事情 - 可能与存在的其他数据类型以及如何在函数之间传递数据有关。