gpt4 book ai didi

objective-c - UIView retainCount为0,但内存没有释放

转载 作者:行者123 更新时间:2023-11-29 11:08:59 24 4
gpt4 key购买 nike

我正在为 iOS 开发一个应用程序,但遇到了内存不足警告的问题。

我的应用程序在点击一个按钮时加载了一个包含大量 subview 的大 View 。内存使用量增长,这是可以理解的(从 30 Mb 到 80Mb)。然而,当用户选择另一个菜单项时 - 这个 View 被释放,但是!应用程序使用的内存量不会减少任何。我使用以下代码来释放 View :

storeView.hidden = YES;
NSLog(@"%d", [storeView retainCount]);
[storeView removeFromSuperview];
storeView = nil;

第二行中的 NSLog 打印:1,所以在释放后它应该被释放。我对 -(void) dealloc 的实现;确实被调用(我调用 [super dealloc]; 在它的最后一行)。然而在那之后我仍然收到内存不足警告。

Instruments 只发现了几个泄漏的 NSString,这不可能导致内存警告。

请问您有什么建议吗?

最佳答案

释放调用会降低保留计数,如果保留计数为 0,它可能会被清除,但并非必须如此。当保留计数为零并且您尝试访问一个变量时,它可能仍然有效,也可能无效。无论哪种方式,您都不能指望它。

关于objective-c - UIView retainCount为0,但内存没有释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12370732/

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