我正在努力提高我的ios cocos2d遊戲的性能。當我注意到一件事情時,我正在使用Instruments工具檢查應用程序的內存分配情況。有太多的CFString對象被[NSBundle mainBundle]調用聲明和保存。它說,由[NSBundle mainBundle]聲明的CFString對象
類別:CFString字符串(不變) 負責來電:一個NSBundle mainBundle]
有我的代碼中的許多地方,我寫了下面幾行
[[NSBundle mainBundle] pathForResource:@"resource-name" ofType:@"png" isDirectory:imageDirectory];
難道這CFString字符串問題是因爲上面的代碼,因爲我在pathForResource方法中給硬編碼的字符串?或者什麼可能是這個問題的原因?任何人都可以幫忙嗎?這個CFString分配需要大約2Mb的代碼,所以我很擔心它。
問候
嗨Jess謝謝你的回答。請解釋這將如何減少CFString對象的數量? – Aqueel
該包的根目錄中的每個路徑似乎都有1個CFString。減少根目錄中文件的數量會減少CFStrings的數量。 –
謝謝Jess。我肯定會嘗試,並會讓你們知道。再次感謝。您能否確切地說明生成的路徑以及爲什麼不生成子文件夾中的資源? – Aqueel