CFString(不可变的)内存使用量在IOS应用程序中不断增长

Ryo*_*Ryo 5 memory memory-leaks memory-management instruments ios

我正在使用工具检查IOS应用程序的内存使用情况,发现CFString一直在分配和增长。我在代码中创建NSString对象时使用了StringWithFormat方法,而不是[[NSString alloc] init]。我该如何阻止呢?下图是仪器输出的屏幕截图。

如果缺少有关该问题的必要信息,请告诉我。

仪器的屏幕截图

Kri*_*nan 0

如果您使用便捷构造函数创建大量临时对象,则最好使用自定义自动释放池块。\n由于使用便捷构造函数创建的对象是自动释放的,因此它们可能不会立即释放。这就是内存使用量激增的原因。

\n\n

来自苹果

\n\n
\n

许多程序创建自动释放的临时对象。这些对象会添加到程序的内存占用空间中,直到块末尾。在许多情况下,允许临时对象累积直到当前事件循环迭代结束不会导致过多的开销;但是,在某些情况下,您可能会创建大量临时对象,这些对象会显着增加内存占用量,并且您希望更快地对其进行处理。在后面的情况下,您可以创建自己的自动释放池块。在块的末尾,临时对象被释放,这通常会导致它们的释放,从而减少程序的内存占用。

\n
\n\n

http://www.cocoanetics.com/2009/08/understanding-autoreleasing/

\n