gpt4 book ai didi

从内存中删除 UIView 时,swift deinit 方法不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 06:38:41 25 4
gpt4 key购买 nike

Swift 中,当任何 UIViewController 从内存中移除时,ARC 正在调用 deinit,但如果有任何 UIView< 则不会调用它 从内存中删除。

例如

如果 UIViewControllerdeinit 运行良好

class MusicPlayerUIViewController: UIViewController,UITableViewDelegate,UITableViewDataSource
{
deinit
{
APP_DELEGATE.RemovePlayerContents()
}
}

但是如果 UIView Class deinit 不工作

class MusicPlayerView: UIView,UITableViewDelegate,UITableViewDataSource
{
deinit
{
APP_DELEGATE.RemovePlayerContents()
}
}

任何想法。

最佳答案

Parent ViewController 可以容纳你的 UIView。您必须将一个属性设置为 nil,该属性将您的 UIView 存储在父 UIViewController 中以发布 uiview。

或者覆盖 removeFromSuperview() 并将您的 deinit 代码放入其中。

关于从内存中删除 UIView 时,swift deinit 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38354162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com