Swift - 如何正确设置弱变量
Swift - How to correctly set up a Weak Variable
我有一个应用程序,里面有很多天文计算。
为了理智,它们被分成单独的 methods/functions。
运行 单独没有内存失控。
然而,当我需要计算一些复杂的东西时,比如太阳光线到地球上任何地方的入射角,我必须连续调用 19 种方法,内存使用量会飙升。显然变量仍然存在,因此 ARC 无法蒸发它们。
所以我认为解决方案是创建一个弱 link。如果我从
改变我的电话
var angleIncidence = Celestial().calculateAngleIncidence(....)
到
weak var angleIncidence = Celestial().calculateAngleIncidence(....)
我得到一个"Weak cannot be applied to a non class type Double"。
显然是我太天真了
双打不是对象,因此将它们称为强和弱没有意义,因为它们没有引用计数。
在实践中,它们遵守变量作用域的典型规则。但是,它们实际上不应成为大量内存使用的原因,除非您使用非常大的数组。我的感觉是可能发生了其他事情 - 可能与存在的其他数据类型以及数据如何在函数之间传递有关。
我有一个应用程序,里面有很多天文计算。 为了理智,它们被分成单独的 methods/functions。 运行 单独没有内存失控。
然而,当我需要计算一些复杂的东西时,比如太阳光线到地球上任何地方的入射角,我必须连续调用 19 种方法,内存使用量会飙升。显然变量仍然存在,因此 ARC 无法蒸发它们。
所以我认为解决方案是创建一个弱 link。如果我从
改变我的电话var angleIncidence = Celestial().calculateAngleIncidence(....)
到
weak var angleIncidence = Celestial().calculateAngleIncidence(....)
我得到一个"Weak cannot be applied to a non class type Double"。
显然是我太天真了
双打不是对象,因此将它们称为强和弱没有意义,因为它们没有引用计数。
在实践中,它们遵守变量作用域的典型规则。但是,它们实际上不应成为大量内存使用的原因,除非您使用非常大的数组。我的感觉是可能发生了其他事情 - 可能与存在的其他数据类型以及数据如何在函数之间传递有关。