2010-07-14 81 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