我现在有问题。我用cocos2d为iPad开发游戏应用程序。在我的应用程序中,我使用背景音乐。当我使用cocos2d音乐方法SimpleAudioEngine时,我得到了泄漏。但是,我的bos不希望我们的应用程序泄漏。除了使用SimpleAudioEngine之外,还有其他任何播放背景音乐的方式而不会泄漏吗?
Thanx之前。问候。
答案 0 :(得分:2)
你怎么知道你有泄漏?通常报告为泄漏的不是泄漏,也不是您自己代码中的泄漏。特别是静态分析器只提出建议,但他的假设经常是错误的。
您可能还想联系图书馆作者Steve Oldmeadow,他可以在cocos2d论坛上找到。至少他可能能够确认一个错误,或解释为什么它不是泄漏。
其次,我不会过分重视泄漏。假设每次开始播放音乐时你都会泄漏16个字节。您必须启动音乐16.000次才能泄露16 KB。你的应用程序有多大可能,以及你“需要”那些16 KB的程度有多严重?
第三,告诉你的老板你修复了泄漏。如果他不想在应用程序中泄漏,他显然不是(好)程序员。我知道这是谎言,我知道会有程序员讨厌我。但实际上,在你花费数小时甚至数天来寻找一种“更好”的音乐播放方式(可能带有其他副作用)而不是在数百款iPhone应用程序中使用已经尝试过的东西之前,这样一个白色的谎言就是为了拯救你的老板一堆钱。
我认为有太多人认为泄漏内存等于经常崩溃的应用程序。情况并非如此,除非泄漏很严重,导致内存不足或某些情况下内存碎片。
答案 1 :(得分:0)
您可以使用SoundMaster引擎代替 CocosDension Sound Engine 。 ARC 支持,内存管理(无泄漏)以及淡入/淡出,相对量等许多其他功能效果或交叉淡化。