iPad和iPhone App中的内存泄漏

时间:2011-09-12 09:23:40

标签: iphone ios ipad

我想问一下,Apple和iPad和iPhone App可以容忍多少MB的内存泄漏。因此App不会被App Store拒绝。 我在XCode中使用了Instruments来检查我的iPad应用程序的内存泄漏。它泄漏了大约11 MB的内存。但是当安装在iPad上时,App不会被Springboard终止并连续运行而没有任何问题或错误。当对象没用时我释放了内存,但它仍然泄漏。

3 个答案:

答案 0 :(得分:3)

Apple没有指定泄漏限制,但我建议11MB是巨大的。我的目标是在我写的每个应用程序上泄漏0个字节。您泄漏的事实意味着您不了解内存管理,因此您应该仔细阅读Apple关于该主题的文档:

http://developer.apple.com/library/ios/#DOCUMENTATION/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html#//apple_ref/doc/uid/10000011i

或谷歌的一些在线教程可能更容易让初学者理解。 E.g。

http://www.raywenderlich.com/2657/memory-management-in-objective-c-tutorial

应用程序使用的内存越多,被杀的可能性就越大,用户体验就越差。你的应用程序现在可以连续运行,但需要多长时间?

答案 1 :(得分:0)

没有指定容忍内存泄漏的数量。问题是你不应该自己容忍它对应用程序和性能都不利,并使应用程序不那么稳定。我建议你首先解决这些内存泄漏,它会使应用程序质量更好并满足你的客户。

答案 2 :(得分:0)

我认为对于内存消耗或内存泄漏没有硬限制指定的限制。这将取决于我假设在该特定时间的设备的当前存储器消耗。

在任何情况下,方法- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application都会在收到内存警告的时候被触发,你应该听一听这个方法,试着释放你应用程序的一些内存。这种变暖将被发送几次到应用程序,如果没有做任何事情来释放内存,操作系统将强行退出应用程序(即它将崩溃)。

您还可以尝试使用XCode中的Build and Analyze选项来查看代码中的一些潜在内存泄漏。