嘿所有,我一直在为客户构建一个应用程序,其中一部分使用Apple的TopSongs示例应用程序在另一个线程上下载数据。我终于做了足够的工作来开始测试那部分并发现> 1000泄漏!仔细查看泄漏事件让我检查TopSongs是否泄漏,因为我的方法都没有泄漏报告。运行TopSongs返回26次泄漏。不太确定如何修复它们,或者它们是Apple的某些库的一部分。
我敢打赌你问它是否有26,为什么你有> 1000?好吧,我使用他们的示例对Web服务进行大约48次调用,以获得初始安装所需的所有信息(48次调用x 26次泄漏= 1248次泄漏!!)。之后它会至少拨打12个电话+4来检查应用程序其他部分的更新信息。无法做到这一点,不能打一个电话,或者少打电话,请不要评论这一部分。我看到人们回复那些不一定回答用户最初发布的问题的帖子,在这种情况下是否有人尝试修补漏洞,如果它们是可修补的,或者这是Apple的库中的错误?
非常感谢。
答案 0 :(得分:6)
这很可能是由于样本代码中的错误而不是库本身;确保熟悉Cocoa内存管理技术,然后让自己适应wabbit狩猎季节。
答案 1 :(得分:1)
正如之前在Stack Overflow上所述,一些报告的泄漏只发生在模拟器中。所以请注意这一点,并在构建菜单中使用“构建和分析”让CLANG帮助您找到内存泄漏。
答案 2 :(得分:1)
您可以在此处找到固定版本的TopSongs:http://www.bigbluebrains.com/index.php/2010/08/16/iphone-topsongs-sample-code-memory-leak-fix/
答案 3 :(得分:0)
安装了Snow Leopard和Xcode 3.2,内置铿锵声。分析代码并没有问题。我再次运行应用程序泄漏iPhone上的仪器,仍然有26个泄漏。决定不使用Apple的示例代码。
*******注:
这是我接受的答案,但由于它没有回答问题,我将其删除并接受了回答问题的回复。