Xcode 工具 - 修复泄漏

Posted

技术标签:

【中文标题】Xcode 工具 - 修复泄漏【英文标题】:Xcode instruments - fixing leaks 【发布时间】:2011-06-02 17:52:26 【问题描述】:

在 xcode 工具中测试我的 ios 应用程序时,我有几个内存泄漏。任何人都可以看到为什么标有“-->”的行泄漏了吗?

--> CLLocationCoordinate2D newCoord = CLLocationCoordinate2DMake(latitude, longitude);
--> MapAnnotation* annotation = [[MapAnnotation alloc] initWithCoordinate:newCoord];
[mapView addAnnotation:annotation];
[annotation release];

另外,我似乎也有一些结构在泄漏;

--> double placeLat = [place.latitude doubleValue];

没有指向“placeLat”变量的指针,所以我不能释放它? :/

谢谢

克里斯蒂

【问题讨论】:

【参考方案1】:

您的代码是正确的,正如您所展示的那样。

您必须记住的一件事是,Leaks 会向您显示创建泄漏对象的位置,而不是您做错导致泄漏的位置。

这是一个重要的区别。实际上,在第一种情况下,很可能就是 annotation 对象,它在代码的其他地方泄露。您应该检查 Instruments 显示为堆栈跟踪的所有执行流程。

【讨论】:

感谢您的回答塞尔吉奥 - 它确实帮助了我。这是我调试的第一个应用程序,这是一场噩梦!在黑暗中摸索了几个小时后,我最终偶然发现了我的错误,我遇到了 Core Data 中的数据类型问题。这导致地图视图中的引脚出现问题。

以上是关于Xcode 工具 - 修复泄漏的主要内容,如果未能解决你的问题,请参考以下文章

使用仪器检查 xcode 4 中的内存泄漏

iPhone 内存泄漏工具

XCode:仪器有堆栈跟踪吗?

Xcode 4 Memory Leak Instrument如何获取发生泄漏的代码行

UIDeviceRGBColor 泄漏 - 如何修复?

了解 Xcode 中的 Instruments,测试泄漏