gpt4 book ai didi

ios - UIView 和 UIViewController 被释放,但内存没有释放

转载 作者:行者123 更新时间:2023-11-30 11:40:16 31 4
gpt4 key购买 nike

我注意到,在我的应用程序中,有时当 View 或 View Controller 被释放时,为其分配的内存不会被释放。这可能是什么原因?

我定义了 deinit 方法来验证 View 和 View Controller 是否确实被释放(deinit 被调用)。我说有时是因为在其他一些情况下,当我删除 View 时,内存确实会被释放。我注意到的另一件事是,当我添加 View 时,内存使用量会上升,然后删除该 View (调用 deinit ),内存使用量保持不变,但后续 View 添加相同的内存使用量 View 不影响使用。

View 是在方法中创建的,并通过View.addSubview(UIView)添加。在 View 中,有一个调用 View.removeFromSuperView() 的按钮。

最佳答案

尝试以下方法:

autoreleasepool {
View.removeFromSuperView() // not sure why you capitalized View but repeating it here just to match your code.
}

这使 iOS 有机会释放自动释放对象。无论如何,它们最终都会自动释放,就像系统需要更多内存一样,但这允许您强制它尽早发生。这个SO answer更详细地解释它。

关于ios - UIView 和 UIViewController 被释放,但内存没有释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49353822/

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