2010-03-08 28 views
1

嘿,我一直在为客户端构建一个应用程序,其中一部分使用Apple的TopSongs示例应用程序在另一个线程上下载数据。我终于完成了足够的工作来开始测试该部分,并发现> 1000泄漏!仔细查看泄漏信息后,我检查了TopSongs的泄漏情况,因为我的方法都没有泄漏报告。运行TopSongs返回了26个泄漏。不太清楚如何解决这些问题,或者他们是否是苹果某些图书馆的一部分。苹果的示例应用程序TopSongs有26个漏洞

我敢打赌,你问是否有26,为什么你有> 1000?那么,我使用它们的示例大约48次调用webservices来获取初始安装所需的所有信息(48次调用x 26次泄漏= 1248次泄漏!!)。之后,它至少会拨打12个电话+4来检查应用程序其他部分的更新信息。无法对此做任何事情,不能打一个电话,或者不打电话,请不要评论这部分内容。我看到有人回复那些不一定回答用户最初发布的问题的帖子,在这种情况下,是否有人尝试修补漏洞,如果它们是可修补的,还是这是Apple库中的错误?

非常感谢。

回答

6

这更可能是由于样本代码比库本身更糟的原因,一定要熟悉Cocoa内存管理技术,然后为自己的狩猎季节做好准备。

+0

笑.................. – Rev316

+0

LMAO!是的,一直在那里做。恨不得**检查**他们的代码。但是,如果要完成,就必须完成!一个有趣的答案! – RoLYroLLs

1

正如之前在堆栈溢出中所述,一些报告的泄漏只发生在模拟器中。因此,请注意这一点,并使用构建菜单中的“构建和分析”让CLANG帮助您查找内存泄漏。

+0

我没有构建和分析。在尝试升级到Snow Leopard之前,我开始了此项目。我有Leopard 10.5.8 w/Xcode 3.1.4和iPhone SDK 3.1.2。一旦我完成,我会尽快升级。 – RoLYroLLs

+0

@RoLYroLLs:您仍然可以从Xcode外部手动安装Clang静态分析器以在Leopard上使用它:http://clang-analyzer.llvm.org/ –

+0

相信我,如果您习惯了它,您无法生活没有它了... – bartvdpoel

0

安装雪豹和Xcode 3.2内置铛。分析了代码并没有问题。我再次运行该应用程序泄漏iPhone上的仪器,仍然有26个泄漏。决定不使用Apple的示例代码。

*******注意:

这是我接受了答案,但因为它没有回答这个问题,我删除,并接受了回答问题的响应。

相关问题