2010-07-14 86 views
0

下面stringwithformat给出内存泄漏

strPageText=[NSString stringWithFormat:@"%@%@",strPageText,data]; 

这在环路给出我已经写代码。它给我一个内存泄漏错误。

+2

此行本身不包含内存泄漏。问题必须在其他代码中。 – Vladimir 2010-07-14 13:36:02

+0

strPageText是静态变量。此行在3个不同位置给我内存泄漏 – user373017 2010-07-14 13:48:31

+0

在声明和初始化strPageText的地方显示代码。你应该使用NSMutableString appendString来代替。 – falconcreek 2010-07-14 13:58:39

回答

1

像弗拉基米尔说,代码没有内存泄漏。

但是,您正在使用工厂方法stringWithFormat创建您的字符串。所以对象是autoreleased。如果你正在循环运行它,你必须获得大量的自动释放对象。因此,对于更好的内存管理代码应该处理分配和释放的对象的内存:

strPageText=[[NSString alloc] initWithFormat:@"%@%@",strPageText,data]; 

,并释放该字符串的下一次迭代前循环结束。

[strPageText release]; 
+0

这不起作用。此时strPageText已经初始化。 – falconcreek 2010-07-14 14:01:32

+0

这会增加内存泄漏。打开它的循环 – user373017 2010-07-15 05:20:28