iphone/ipad 内存泄漏仪器工具
Posted
技术标签:
【中文标题】iphone/ipad 内存泄漏仪器工具【英文标题】:iphone/ipad memory leaks instrument tool 【发布时间】:2010-09-28 09:27:40 【问题描述】:为了尝试内存泄漏检测工具,我创建了一个基于视图的 ipad 应用程序。这很简单。我创建了一个默认的基于视图的应用程序。在ViewController的loadView中,我说
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView
[super loadView];
UIView *view = [[UIView alloc] init];
view.frame = CGRectMake(0, 0, 768, 1004);
view.backgroundColor = [UIColor redColor];
[self.view addSubview:view];
[view removeFromSuperview];
所以,我在 loadView 中创建了一个视图,然后将其添加到根视图,然后将其删除。
但是视图是在方法中创建的,我从不释放它。
所以我认为在 loadView 完成后,创建的视图会泄露吗?
我使用内存泄漏工具检查,它报告根本没有泄漏。
谁能解释一下为什么?
谢谢
【问题讨论】:
+1 我也不懂内存泄漏工具... :/ 是的,希望有人能提供帮助。我阅读了很多关于该工具的信息。但是任何人都可以解释我上面的例子吗? 【参考方案1】:泄漏工具(命令行或分配工具)将泄漏报告为不再被任何对象引用的对象。但问题是,指向对象的杂散指针可能仍然在内存中的某个地方,即使该内存永远不会被再次读取。
即泄漏仪器不是 100% 准确的,它努力不给出误报(这更麻烦)。
我通常使用分配工具,查看在任何给定时间“活跃”的对象列表,并在心理上证明它们的存在。
您说得对,因为上述代码 sn-p 将导致 UIView
实例泄漏。如果你是build and analyze
,我希望 Xcode 会发现问题。
【讨论】:
以上是关于iphone/ipad 内存泄漏仪器工具的主要内容,如果未能解决你的问题,请参考以下文章