Swift 中的内存管理和解引用对象

问题描述

我正在创建一个对象,我在其中调用它以在由按钮控制的布尔循环中运行一个函数。创建对象后,我调用它的两个函数,以便我可以获得返回值并将它们传递给下一个函数。一旦循环完成,对象仍然被引用,因此它不会被 ARC 设置为零,因此我造成了内存泄漏。我正在尝试使用 weak 引用类型,但是当我尝试继续引用对象时。我将在不更改变量类型或创建可选运算符的情况下粘贴泄漏的代码,以便您可以看到我从哪里开始。

self.buttonpress = true

DispatchQueue.global().async{
    while buttonpress == true{
        let varfind = find()
        let b = varfind.build()
        let yes = varfind.isInside(index: b,xaxis: locationViewModel.userXaxis,yaxis: locationViewModel.userYaxis)
        self.final = String(Int(locationViewModel.userZaxis)-yes)
    }
}

问题是,我如何让 while 循环中的内容执行并取消引用对象及其指针,以便它不会越来越多地占用内存并使用弱变量类型崩溃?

我知道我需要使用 let varfind : find? = find(),然后在 find 类中添加一个 deinit 以便将所有内容设置为 nil 但是,我认为在设置参数时存在误解例如在 var yes 到 nil 作为索引是一个 [String] 所以它只能接受一个空数组?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)