gpt4 book ai didi

ios - 未调用 dealloc 进行控制

转载 作者:行者123 更新时间:2023-11-29 04:01:12 27 4
gpt4 key购买 nike

我有一个 UIWebView 的子类,并在 View Controller 中使用它。

CViewController *controller = [[CViewController alloc] init];
self.webView = controller;
[controller release];

现在,在我的 View Controller 中,dealloc 被调用,我调用 [_webView release]但是我的 UIWebView 子类中的 dealloc 从未被调用,并且每次我将一个 View Controller 放入堆栈时内存使用量都会增加,并且在从堆栈弹出后永远不会被释放。我还可以在 Safari 开发工具中看到我的所有窗口,因此它们永远不会被发布。我检查了retainCount(我知道它不是很有用),但它告诉我在分配给我的属性后retainCount是3? (属性是非原子的,保留)

最佳答案

retainCount 为 3 是转移注意力;毫无用处的干扰。 http://www.whentouseretaincount.com等等。

由于您有重复泄漏的情况,Heapshot analysis应该有助于查明内存残留的确切原因。

但是,您可能不需要走那么远。如果您的应用程序只有一个 UIWebView,那么您应该只需将分配工具配置为仅跟踪事件对象并跟踪保留/释放事件。这样,将内存中的对象列表过滤到 UIWebView,然后单击与该对象关联的保留/释放事件列表。额外的保留将在那里找到。

然而,这可能只是一种症状,而不是原因。原因可能是缓存出错,也可能是卡在 Web View 上的其他某个未正确释放的对象。

关于ios - 未调用 dealloc 进行控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15834754/

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